javascript - jQuery 选择并包装 textNode

标签 javascript jquery jquery-selectors textnode

我想选择 div 元素内的文本并将其用 <b> 包裹起来标签。 <b>标签应该只换行到 div 内的文本,而不是子元素内的文本,例如 <p>本例中的标签。

<div>Testing
    <p>Some more text inside p</p>
    <p>asdasdasdasdasde p</p>
    Test
</div>

我可以选择 <p>使用以下文本,但我无法对 div 执行相同的操作.我只想要 div 的文本而不是 p .对于这种情况,它应该选择并包装 TestingTest .

var x = $('p')[0].textContent; // this is not working for div.
console.log(x);

JSFiddle

最佳答案

您可以使用 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/

相关文章:

javascript - 使用 jquery 获取选择值和单选值

javascript - Primefaces 编辑器模糊事件

jquery - 获取第二个子元素

Javascript 获取缩进 json 的唯一值

javascript - Object.Observe 同步回调

java - XMLHttpRequest POST 之后下载 png 文件

javascript - 如何在多个预先声明的 jQuery 对象上绑定(bind) jQuery 事件

javascript - jQuery 代码在滚动后继续运行

jquery - 是否可以将 HTML5/CSS/jQuery GUI 应用到嵌入的 Flash 视频上?

jquery - jquery 代码中“this”的含义