javascript - 如何用另一个元素包装html中的所有文本?

标签 javascript jquery html

例如:

来自

<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

http://jsfiddle.net/hyJA6/2/

关于javascript - 如何用另一个元素包装html中的所有文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14067434/

相关文章:

html - 在 hamburger bootstrap4 之前添加组件

javascript - 使用 Google Apps 脚本进行 Stripe 付款

javascript - 当 Controller 中有 watch 时, Angular UT 出现问题

javascript - 如果没有 Node.js 或运行服务器,是否可以使用纯 JavaScript 通过 HTML 应用程序创建/输出 JSON 文件到硬盘?

php - 通过 HTML 文件将参数从服务器端传递给 Javascript

jquery - 如何在 ASP.NET MVC 中进行长轮询 AJAX 请求?

javascript - Node.js promise 不强制函数的顺序执行

jquery - angularjs 无法通过 jQuery 找到 "this"?

javascript - 你能帮我把这个游戏里的红色方 block 换成图片吗?

javascript - 单击时更改元素的颜色