То, что есть у 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')
. Есть и другие области, в которых также происходит нормализация ... возможно, события являются наиболее обширными из них, если вам интересно вы можете видеть, что здесь , это уже сделано для вас, используйте его:)