Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE7中jQuery是否可以使用复合选择器?_Jquery_Jquery Selectors_Internet Explorer 7 - Fatal编程技术网

IE7中jQuery是否可以使用复合选择器?

IE7中jQuery是否可以使用复合选择器?,jquery,jquery-selectors,internet-explorer-7,Jquery,Jquery Selectors,Internet Explorer 7,这正是我在这里遇到的问题,因为这在IE8+和其他更新的浏览器上不是问题。下面是我用来访问各个元素的代码行: $('.contactInfo input[type="text"], .companyInfo input[type="text"]').each(function () {...}); 我在上面一行中所做的是从每个div中获取包含class.contactInfo和.companyInfo的文本框。除了IE7之外,它在任何情况下都能完美工作。我开始相信这是不可能的7,但如果是这样,我

这正是我在这里遇到的问题,因为这在IE8+和其他更新的浏览器上不是问题。下面是我用来访问各个元素的代码行:

$('.contactInfo input[type="text"], .companyInfo input[type="text"]').each(function () {...});

我在上面一行中所做的是从每个div中获取包含class.contactInfo和.companyInfo的文本框。除了IE7之外,它在任何情况下都能完美工作。我开始相信这是不可能的7,但如果是这样,我想知道它是如何做到的。这并不紧急,因为我已经想出了一个解决办法,但解决这个问题的方法会更有效。提前谢谢

您的问题的详细答案是,在IE7中使用JQuery,可以使用复合选择器,但需要注意

IE7不支持querySelectorAll(),因此,如果选择器的数量较多,或者只是选择器的内部HTML处理时间较长,“each”请求将超时

它不是JQuery,而是浏览器,要解决这个问题,您要么需要分离循环,要么使用更合格的选择器


参考:

您使用的是哪个版本的jQuery?使用jQuery的99.99%原因是为了消除用户代理的考虑。我想说的是,如果IE7中的jQuery无法使用复合选择器,那么是时候找到一个新的跨浏览器填充库了。jQuery 1.9放弃了对IE7的支持,不是吗?如果您使用的是更新版本,请尝试1.8.x分支。如果这不起作用,那么它将是一个bug,听起来不太可能。你确定吗?@Mark这就是jquery2.0,1.9仍然支持探险家:我明白了!我想我必须做两个独立的循环,因为我尝试了很多不同的方法使它在一条线上工作,但都没有效果。谢谢你让我明白这是我应该做的!需要注意的是,
querySelector()
(和
querySelector()
)是DOM的一部分,而不是jQuery。这就是为什么要提到Sizzle,因为它是那些DOM方法不可用时的回退(也就是说,比本机方法慢一些)。我还看到这两个都被标记为无效,所以我不确定这代表了多少答案。