我有:
// $(this): <span class="class1"><span class="class2"></span> Some text</span>
$(this).children().each(function () {
console.log(this);
});
从控制台我只获得了class2的范围,我怎么能得到文本?类似的东西:
['<span class="class2"></span>', 'Some text']
答案 0 :(得分:5)
$(this).children()
只会返回作为元素的子节点。
您需要使用$(this).contents()
来获取所有节点,包括文本节点。 :)
然后,您可以过滤这些节点以获取元素和文本(请参阅node types):
$(this).contents().filter(function() {
return (this.nodeType === 1) || (this.nodeType === 3);
})
答案 1 :(得分:3)
注意.contents()
和.children()
之间的差异。你需要前者
当.children()返回所有可用元素时,.contents也返回文本和注释
答案 2 :(得分:0)
你可以得到这样的输出
jQuery(".class1").contents()