返回节点文本(非递归)
我想返回表格单元格的节点值。 然而,方法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/