我想选择 div 元素内的文本并将其用 <b>
包裹起来标签。 <b>
标签应该只换行到 div 内的文本,而不是子元素内的文本,例如 <p>
本例中的标签。
<div>Testing
<p>Some more text inside p</p>
<p>asdasdasdasdasde p</p>
Test
</div>
我可以选择 <p>
使用以下文本,但我无法对 div
执行相同的操作.我只想要 div
的文本而不是 p
.对于这种情况,它应该选择并包装 Testing
和 Test
.
var x = $('p')[0].textContent; // this is not working for div.
console.log(x);
最佳答案
您可以使用 contents
, 并按节点类型过滤(3 为文本节点):
$('div').contents()
.filter(function(){return this.nodeType === 3})
.wrap('<b />');
示例:http://jsfiddle.net/nJqKq/8
另请参阅:Node Types , 在 MDC
关于javascript - jQuery 选择并包装 textNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291703/