当前位置:  开发笔记 > 编程语言 > 正文

为什么这个jQuery选择器没有选择任何东西?

如何解决《为什么这个jQuery选择器没有选择任何东西?》经验,为你挑选了1个好方法。

这是一个简单的问题,快速代码转储.我有

$insides = $('Opportunities to DateNumber of winsNumber of active dealsNumber of persmission to pursueNumber of persmission to contactNumber of deals lostNumber of deals disqualified% deals with ...% deals with ...% deals with ...Current total pipeline value');
for ( var region in this.DealsByRegion ) 
{
    $insides.find('thead > tr').append('' + region + '');
}

它没有用,因为

$insides.find('thead > tr')

没有返回任何东西(即$insides.find('thead > tr').length = 0).为什么?不是一个孩子的thead后代$insides吗?



1> jehna1..:

那是因为$insides变量中的当前根元素已经是一个thead节点.所以下面的代码:

$insides.find('thead > tr')

转换为css选择器

thead thead > tr

更合适的选择器是:

$insides.filter('thead').children('tr')


使用`$ insides.children("tr")`将选择所有行,我最好使用`$ insides.filter('thead').children('tr');`
@SubparWebDev:你不应该.你实际上做的是正确和直观的.本机`querySelectorAll`表现正常,但jQuery*故意*通过任意决定整个选择器应该被解释为仅应用于子结构的内容而不是像其他每个CSS选择器一样应用于整个文档.
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有