拆分文本节点在中间
Split a textnode in the middle
我有这个小文本
<div>
Hello world<br>
this is a good<br>
text!
<br><br>
Whatever I need help<br>
so please!<br>
<br><br>
<!-- I WANT TO SELECT THE ELEMENTS AFTER THIS LINE INCLUDING TEXTNODE -->
It will be very nice<br>
when it works!
<br><br>
It will be very nice<br>
when it works!
<br><br>
</div>
正如你所看到的,它看起来像不同的部分。
我可以通过搜索标记中的所有双<br><br>
标记并将其除以2来找到中间部分。我创建了这个小功能:
var content = $("div").html().toString();
var middle = content.match(/<br[^>]*><br[^>]*>/g).length / 2;
我现在的问题是,我不知道如何选择元素,包括双br标记后面的文本节点。
这是对标记和JS的篡改http://jsfiddle.net/ATbKU/
如果我只是得到一个关于如何完成的提示就足够了;-)
我提出了这个不涉及对HTML:进行切片的解决方案
var content = $("div").contents(),
dblBRCount = content.filter(function () {
return this.tagName == "BR" && this.nextSibling.tagName == "BR";
}).length,
filterCount = 0,
result = content.filter(function () {
if (filterCount >= (dblBRCount / 2))
return true;
else if (this.tagName == "BR" && this.previousSibling.tagName == "BR")
filterCount++;
return false;
});
相反,它在元素的所有子节点上迭代两次,一次是获得双<br>
元素的数量,另一次是过滤掉中间之前的所有元素,保留后面的元素。
工作演示:http://jsfiddle.net/AndyE/ATbKU/1/
相关文章:
- 承诺在非节点式回调上使用Bluebird
- 检查在使用节点运行程序时是否给出ARGV
- Regex加在中间
- 如何在所有节点中获取页面的文本
- 在源节点上调用 stop() 是否会触发已结束的事件
- 如何使用JS在中间输入文本中动态插入字符
- 如何在更改节点 JS 表中的复选框时禁用按钮
- 引导弹出框在中间对齐
- 为什么正文标记后的脚本标记在子节点中计数
- JsTree:如何在将节点从一棵树拖到第二棵树时获取事件
- Meteor:排队任务中出现异常:错误:无法执行'removeChild'在'节点':要
- 在子节点上重复
- 如何在非节点JS环境中使用打包模块
- 在选定节点的有向、未加权图中查找所有路径
- 1.js:23未捕获类型错误:执行'失败;appendChild'在'节点':参数1不是
- Beautifulsoup抓取数据,其中有js文本在中间
- 在JavaScript节点环境中将Gzip内容编码响应转换为JSON数据
- 如何使用'郎'在中间件中
- vis.js在盒子节点内添加一个小圆圈
- 拆分文本节点在中间