jQuery在段落中br前后的范围内换行文本
正如标题所示,我想知道如何在一个段落中,在br之前和之后将文本包装成一个跨度 我的HTML也是如此jQuery在段落中br前后的范围内换行文本,jquery,Jquery,正如标题所示,我想知道如何在一个段落中,在br之前和之后将文本包装成一个跨度 我的HTML也是如此 <div class="blog-container"> <div class="each-article"> <p>Text text text <br/> text text text</p> </div> <div class="each-article"> <p>Te
<div class="blog-container">
<div class="each-article">
<p>Text text text <br/> text text text</p>
</div>
<div class="each-article">
<p>Text text text <br/> text text text</p>
</div>
</div>
文本
文本
文本
文本
而我的jQuery,我认为会起作用,是
$('.blog-container .each-article p br').before().wrap('<span></span>');
$('.blog container.each article p br')。before().wrap('');
这给我的是:
<div class="blog-container">
<div class="each-article">
<p>Text text text <br><span></span></br> text text text</p>
</div>
<div class="each-article">
<p>Text text text <br><span></span></br> text text text</p>
</div>
</div>
文本
文本
文本
文本
试试这个:
$('.each-article p')。each(function(){
$(this.contents().filter(function()){
返回this.nodeType==3;
}).wrap(“”);
});
参考资料:
- ,它选择所有子节点,包括文本节点
- (文本节点为
)3
编辑-此处不需要修剪。但是,在某些情况下(例如,如果非文本节点是第一个子节点),可以将空白视为文本节点。看到这把小提琴:出于好奇,这行是什么,
和&$.trim(this.textContent).length>0代码>做什么?实际上最终使用了这个.nodeType!==1.选择未包装在其他元素(如锚定标记和/或其他内部元素)中的任何文本。但是非常感谢你,杰森,你刚才提到这件事救了我一命。
$('.each-article p').each(function() {
$(this).contents().filter(function() {
return this.nodeType == 3;
}).wrap('<span>');
});