jquery:单独的标记和文本

时间:2015-11-11 10:35:04

标签: javascript jquery regex each

我有:

// $(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']

3 个答案:

答案 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()