jQuery获取所有后代节点,包括文本节点

时间:2014-06-03 13:32:03

标签: javascript jquery

jQuery中有一种方法可以递归地获取父节点的所有后代节点,包括文本节点吗?我知道$.contents()方法,但正如jQuery文档所述:

  

.contents()方法允许我们在DOM树中搜索这些元素的直接子元素

我的问题是,我有一个包含更多(非文本)节点的子节点,而我需要的不是父节点。 我正在尝试一些解决方法:

var contents = container.contents();
var foo = $('.foo');
var index = contents.index(foo);
contents.splice(index,1,$('.foo').contents());

...但是这会插入数组而不是单个元素。我的最后一步是将元素逐个推送到contents数组,但我想知道是否有更好的方法来执行此操作。

1 个答案:

答案 0 :(得分:1)

我真的不明白你想要做什么,但为了获得某个元素的所有后代节点,你可以使用以下内容:

var nodes = $('*', container).addBack().contents();

DEMO: http://jsfiddle.net/5vfBg/