返回节点文本(非递归)

我想返回表格单元格的节点值。 然而,方法text()沿着整个DOM树向下并返回所有嵌套节点的字符串(表格单元格可能包含text和html)。 一旦我提取了节点的字符串,我想修改它并将其写回节点。 修改后的文本由文本和html组成。

是否有任何jquery方法(或可能是Javascript)可用于获取文本(不降序为子)和另一个我可以用来写回文本的函数+ html(纯文本()和html()赢了’在这种情况下工作,因为他们会覆盖子节点)?

干杯,马克斯

要从子文本节点获取文本,您可以这样做:

var text = $('selector').contents().map(function() { // If it is a textNode, return its nodeValue if(this.nodeType == 3) return this.nodeValue; }).get().join('');​​​​​​ 

我不知道你想要对文本做什么,但是如果你想要处理它并用新的text / html替换它,你应该能够做一个.each()而是使用.replaceWith()

 $('selector').contents().each(function() { if(this.nodeType == 3) { // do something with the text $(this).replaceWith('new processed value'); } });​​​​​​ 

这是一个例子: http //jsfiddle.net/ZNjCW/