我正在使用.attr()
jQuery函數來檢查和取消選中複選框。它第一次工作,但是現在不再有了。如何使用jquery檢查和取消選中複選框元素?
在閱讀了幾個關於它的問題之後,我無法完成這項工作。例如this和this和this
我在Chrome和Firefox上測試了它。我使用jsFiddle也遇到同樣的問題。
問題在哪裏?在JavaScript代碼上,在HTML中還是在哪裏?
這是所有代碼:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Searchs</title>
</head>
<body>
<div id="results-body">
<table>
<thead>
<tr>
<td class="small center">
<input type="checkbox" id="checkall" onclick="master();" />
</td>
</tr>
</thead>
<tbody>
<tr>
<td class="center">
<input type="checkbox" class="slave" onclick="slave();" />
</td>
</tr><tr>
<td class="center">
<input type="checkbox" class="slave" onclick="slave();" />
</td>
</tr>
</tbody>
</table>
</div>
<!-- LOAD THE JS AT THE END OF THE FILE -->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
master = function() {
if ($('#checkall:checkbox').is(":checked"))
$('input:checkbox').attr('checked',true);
else
$('input:checkbox').attr('checked',false);
}
slave = function() {
var allSelected = true;
$('.slave[type="checkbox"]').each(function() {
if ($(this).is(":not(:checked)")){
allSelected = false;
//return;
}
});
if (!allSelected) {
//$('#checkall:checkbox').removeAttr('checked');
alert("REMOVE: \nFrom " + $('#checkall:checkbox').attr('checked'));
$('#checkall:checkbox').attr('checked',false);
alert("to " + $('#checkall:checkbox').attr('checked'));
} else {
alert("ADD: \nFrom " + $('#checkall:checkbox').attr('checked'));
$('#checkall:checkbox').attr('checked',true);
alert("to " + $('#checkall:checkbox').attr('checked'));
}
}
});
</script>
</body>
</html>
用'.prop'換掉'.attr' – adeneo
@adeneo工作正常。請創建一個新的答案,以便我可以將其標記爲已接受 – Lucio