考虑以下HTML代码:
<div>
aaaa
<span>bbbb</span>
cccc
<span>dddd</span>
eeee
</div>
我使用JQuery按照这个问题的答案,匹配[aaaa, cccc, eeee]
文本节点:
$('div').contents().filter(function()
{
return this.nodeType === 3;
});
现在,我想用一个HTML元素来替换每个文本节点 - 比如一个包含文本节点的
<div>
。这是我期望的结果:<div>
<div>aaaa</div>
<span>bbbb</span>
<div>cccc</div>
<span>dddd</span>
<div>eeee</div>
</div>
我试过使用各种闭包传递给.each
。例如:
$('div').contents().filter(function()
{
return this.nodeType === 3;
}).each(function()
{
this.html("<div>" + this.text() + "</div>");
});
但是似乎文本节点没有提供任何.html
方法。我该如何使用JQuery将文本节点替换为任意HTML元素?
replaceWith
方法。 - Taplar$(this).html()
- Dalin Huang