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