例如:
来自
<div>
whats up!
<div> whats up2! </div>
thank you for your help
<div></div>
</div>
到
<div>
<span>whats up!</span>
<div><span> whats up2! </span></div>
<span>thank you for your help</span>
<div></div> <!---STAYS THE SAME -->
</div>
我如何在 jQuery 或纯 JavaScript 中制作这样的东西?
最佳答案
有这个 HTML:
<div id="container" >
whats up!
<div> whats up2! </div>
thank you for your help
</div>
你可以这样做:
var nodes = document.getElementById('container').childNodes;
$(nodes).each(function(ind, el){
if(el.nodeType == 3)
$(el).wrap('<span>');
else
$(el).wrapInner('<span>');
});
据我所知,您无法使用 jQuery 获取文本节点(如果我错了请纠正我'),因此您可以使用纯 JavaScript 获取它们并使用 jQuery 的方法 wrap
关于javascript - 如何用另一个元素包装html中的所有文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14067434/