IE7中jQuery是否可以使用复合选择器?
这正是我在这里遇到的问题,因为这在IE8+和其他更新的浏览器上不是问题。下面是我用来访问各个元素的代码行: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,但如果是这样,我
$('.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方法不可用时的回退(也就是说,比本机方法慢一些)。我还看到这两个都被标记为无效,所以我不确定这代表了多少答案。