jQuery 1.3仅选择第一个元素
我不确定这是否是一个bug,或者只是jQuery1.3中我不知道的一些疯狂的新东西,或者我是不是疯了 我有一个表,其中有11个复选框,我无法使用jQuery 1.3将它们全部选中:jQuery 1.3仅选择第一个元素,jquery,jquery-1.3,Jquery,Jquery 1.3,我不确定这是否是一个bug,或者只是jQuery1.3中我不知道的一些疯狂的新东西,或者我是不是疯了 我有一个表,其中有11个复选框,我无法使用jQuery 1.3将它们全部选中: // jQuery 1.2.6 $(".myTable").find(":checkbox"); // finds 11 elements // jQuery 1.3 $(".myTable").find(":checkbox"); // finds 1 element: the first checkbox
// jQuery 1.2.6
$(".myTable").find(":checkbox"); // finds 11 elements
// jQuery 1.3
$(".myTable").find(":checkbox"); // finds 1 element: the first checkbox
$(":checkbox", $(".myTable")); // finds 1 element
$('.myTable :checkbox')); // finds all 11 elements
如果我使用.find('*')
,结果是一样的:它只选择1.3中的第一个元素,所以它不是:checkbox所特有的
在我自己的页面上,我每次都可以重新创建它,但是当我将(似乎)相关的部分粘贴到JSBin中时,它就工作了
最初的页面也包含了Mootools,但我对范围划分非常谨慎,JQ1.2.6没有任何问题,所以我认为这不可能。还有其他想法吗
在任何人说之前,在这种情况下,使用.find()
函数比组合选择器(”.myTable:checkbox“
)方便得多,并且将我的所有代码更改为该样式不是一个选项 如果它确实是一个bug,您应该访问jQuery bug tracker站点并报告它(请参阅)
这一点尤其正确,因为1.3刚刚发布。然而,考虑到它已经经历了大量的测试,我强烈建议您尝试一个非常简单的网页,看看它是否真的是jQuery的问题,或者,正如您所建议的,是与其他工具(即Mootools)的可能交互。一个只有几个复选框的简单页面、1.3 jQuery和您在问题中给出的代码将是理想的
只有当这仍然是一个问题时,我才会在jQuery上提出一个bug,否则我会从各种讨论组开始,看看他们是否能提供帮助
例如,这段代码确实有效,因此不太可能是jQuery的bug
<html>
<head>
<script type="text/javascript" src="jquery-1.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(document).find(":checkbox").attr('checked',false);
$("a").click(function(event){
$(".myTable").find(":checkbox").attr('checked',true);
event.preventDefault();
});
});
</script>
</head>
<body>
<a href="http://nowhere.com/">Click me!</a><hr>
<table class="myTable"><tr>
<td><input type="checkbox">One</input></td>
<td><input type="checkbox">Two</input></td>
<td><input type="checkbox">Three</input></td>
</tr></table>
</body>
</html>
$(文档).ready(函数(){
$(文档).find(“:checkbox”).attr('checked',false);
$(“a”)。单击(函数(事件){
$(“.myTable”).find(“:checkbox”).attr('checked',true);
event.preventDefault();
});
});
一个
两个
三
嘿,尼克,找到这个问题了吗?这是一个有趣的问题,我希望看到它得到解决。不幸的是,没有。在我的本地测试框中,它每次都会中断,但我无法在任何其他代码中重新创建该问题。目前,我将坚持1.2.6,如果它没有坏掉的话……我发现了问题。我在我问的另一个问题中写道:嘿,帕克斯,我发现了问题所在。解释如下: