На загрузке страницы, с помощью jQuery, как я могу установить все флажки в определенном отделении автоматически?
$(function(){
$('#thediv input:checkbox').attr('checked', 'checked');
});
Похоже, люди искренне недоумевают, как это сделать в jQuery. Проверка флажка намного проще и эффективнее без него. В следующем примере используются сильные стороны jQuery - выбор и итерация по списку узлов в сочетании с не менее простым свойством DOM checked
элементов чекбокса:
$("#myDiv input:checkbox").each(function() {
this.checked = true;
});
В этом случае несложно полностью отказаться от jQuery:
var div = document.getElementById("myDiv");
var inputs = div.getElementsByTagName("input");
for (var i = 0, len = inputs.length; i < len; ++i) {
if (inputs[i].type == "checkbox") {
inputs[i].checked = true;
}
}
UPDATE
С момента выхода jQuery 1. 6 и prop()
, появился разумный способ сделать это в jQuery:
$("#myDiv input:checkbox").prop("checked", true);
То, что есть в redquare , будет работать, но в целом лучше использовать с ними true
/ false
, поскольку именно так они нормализованы, вот несколько примеров того, почему это удобная привычка.Например:
$('#myDiv :checkbox').attr('checked', 'checked');
alert($('#myDiv :checkbox').attr('checked')); //this alerts true, not "checked"
Вы можете проверить это здесь.
Вместо этого возьмите в привычку передавать логическое значение, которое является гораздо более универсальным, например:
$(function() {
$('#myDiv :checkbox').attr('checked', true);
});
Это обеспечивает большую гибкость в более кратком коде, для Например, скажем, у нас есть флажок «Проверить все» вверху, как бы это выглядело?
$('#checkAll').change(function() {
if(this.checked) {
$('#subTable :checkbox').attr('checked', 'checked');
} else {
$('#subTable :checkbox').removeAttr('checked', 'checked');
}
});
Теперь нам пришлось добавить новую функцию для выполнения этой работы, .removeAttr ()
. Честно говоря, это даже то, как документация jQuery делает это в примере . Но вы можете значительно сократить это, если воспользуетесь преимуществами нормализации, которую jQuery выполняет внутренне, например:
$('#checkAll').change(function() {
$('#subTable :checkbox').attr('checked', this.checked);
});
Это просто то, о чем нужно помнить при написании кода, те же правила применимы к .attr ('disabled ')
. Есть и другие области, в которых происходит нормализация ... вероятно, события являются наиболее обширными из них, если вам интересно , вы можете увидеть, что здесь , это уже сделано для вас, используйте это :)