jQuery find似乎不起作用

我有一个存储在“selectedContents”中的DocumentFragment,我试图在jQuery的帮助下找到它中的“span”元素。 它有两个子节点,第一个是文本节点,第二个是跨度。

当我尝试$(selectedContents.childNodes).find('span') ,它返回一个空集!

但是,当我打印"$(selectedContents.childNodes)[1].localName"它说“span”!

我的发现有什么不对吗? 请帮忙。

谢谢
SRIKANTH

因为您传递了一组元素,所以需要使用.filter()来过滤

 $(selectedContents.childNodes).filter('span'); 

.find()方法用于搜索后代


编辑:请注意,您将childNodes传递给jQuery对象的方法是正确的。 您无法按照某些建议传递documentFragment

这是一个例子来说明: http //jsfiddle.net/P8nur/

使用$(selectedContents.childNodes)您已经选择了selectedContents中的所有元素。 所以做一个find会在该选择器的第一个元素上执行该方法。

试试这个:

 $(selectedContents).find('span') 

试试吧

 $(selectedContents).find('span'); 

这里的东西是$(selectedContents)返回一个jQuery神奇的东西,而$(selectedContents.childNodes)返回一个像丑陋的数组。 所以,你的数组没有find()函数。

使用$(selectedContents).find('span')$(selectedContents.childNodes).filter('span') ,如@justkt和@patrick dw所说。

我尝试了$(selectedContents).find('span') ,但它产生了一个空集! 以及filter ,这也导致空集!

然而$(selectedContents).children('span')产生了我想要的东西!

就像patrick_dw所说,可能jQuery与DocumentFragment没有预期的效果!

感谢你的帮助。