jqueryfind似乎不起作用

jqueryfind似乎不起作用,jquery,find,Jquery,Find,我有一个DocumentFragment存储在“selectedContents”中,我正试图在jQuery的帮助下在其中查找“span”元素。它有两个子节点,其中第一个是文本节点,第二个是跨度节点 当我尝试$(selectedContents.childNodes).find('span')时,它返回一个空集 但是,当我打印“$(selectedContents.childNodes)[1].localName”时,它会显示“span” 我的发现有什么问题吗?请帮忙 谢谢 Srikanth因为

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

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

但是,当我打印
“$(selectedContents.childNodes)[1].localName”
时,它会显示“span”

我的发现有什么问题吗?请帮忙

谢谢

Srikanth

因为要传递元素集合,所以需要使用
.filter()
从集合中筛选

$(selectedContents.childNodes).filter('span');
.find()
方法用于搜索子体


EDIT:请注意,将
childNodes
传递到jQuery对象的方法是正确的。您不能像一些人建议的那样传递
documentFragment

这里有一个例子来说明:

试试看

$(selectedContents).find('span');
使用
$(selectedContents.childNodes)
您已经从
selectedContents
中选择了所有元素。因此,执行查找将在该选择器的第一个元素上执行该方法

试试这个:

$(selectedContents).find('span')
这里的东西是
$(selectedContents)
返回jQuery神奇的东西,而
$(selectedContents.childNodes)
返回类似丑陋数组的东西。因此,您的数组没有
find()
函数

使用
$(selectedContents).查找('span')
$(selectedContents.childNodes).筛选('span')
,正如@justkt和@patrick dw所说。

我试过
$(selectedContents).查找('span')
,但结果是一个空集!以及
过滤器
,这也会导致空集

然而,
$(selectedContents)。孩子('span')
产生了我想要的结果

正如patrick_dw所说,也许jQuery在DocumentFragment中不能像预期的那样工作


谢谢大家的帮助。

错了
$(selectedContents.childNodes)
也是一个jQuery对象。不能将片段传递到jQuery对象中。但是,支持像OP那样传递元素数组。将
documentFragment
传递到jQuery对象中会得到意外的结果。(看起来它应该能工作,但它不能。)你需要像OP一样传递它的
子节点。关于上面的代码,我将继续执行
$(selectedContents.childNodes)
,因为它是完全受支持的。如果jQuery决定开始支持一个片段作为参数,那么上面的代码将中断。(别忘了点击答案旁边的复选标记“接受”它。):哦!我是StackOverflow的新手,下次我会发布相应的评论。顺便问一下,您的意思是我应该使用$(selectedContents.childNodes)尝试查找吗?正如我在最初的帖子中所说,$(selectedContents.childNodes.find('span')不起作用!