我想返回表格单元格的节点值。然而,方法text()沿着整个DOM树向下并返回所有嵌套节点的字符串(表格单元格可能包含text和html)。一旦我提取了节点的字符串,我就想修改它并将其写回节点。修改后的文本由文本和html组成。
是否有任何jquery方法(或者可能是Javascript)可用于获取文本(不会降级到子级)和另一个我可以用来写回文本+ html(纯文本()和html的函数( )在这种情况下不起作用,因为它们会覆盖子节点)?
干杯, 最大
答案 0 :(得分:4)
要从子文本节点获取文本,您可以这样做:
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/