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没有预期的效果!
感谢你的帮助。