以下代码在同一行为中不起作用。 click事件和调用foo()的顺序是不同的。我想知道为什么他们在调用click()之间表现出不同的顺序,并在每次调用click()之前迭代对象。
<script type="text/javascript">
function foo(obj){
alert(obj.id+" ->"+obj.checked);
}
function clickAll(val){
if (val) {
$(":checkbox").click();
} else {
$(":checkbox").each(function(i,obj){
obj.click();
});
}
}
</script>
</head>
<body>
<input type="checkbox" id="check1" onclick="foo(this)" /> a
<input type="checkbox" id="check2" onclick="foo(this)" /> b
<input type="checkbox" id="check3" onclick="foo(this)" /> c
<input type="button" onclick="clickAll(true)" value="click all" />
<input type="button" onclick="clickAll(false)" value="click all each" />
</body>
答案 0 :(得分:0)
而不是......
$(":checkbox").each(function(i,obj){
obj.click();
});
尝试:
$(':checkbox').each(function() {
$(this).click();
});
答案 1 :(得分:0)
$(":checkbox").each(function(i,obj){ // i is an index and obj is a dom element object...
//obj.click(); not a jQuery Object that is why it's not working as expected
$(obj).click(); // do this instead..
});