У меня есть небольшой код jQuery, но он дает мне некоторые ошибки. Может ли кто-нибудь помочь мне с этой ошибкой?
Код:
<input type = "checkbox">
<input type = "checkbox" checked>
<input type = "checkbox">
<input type = "checkbox" checked>
<input type = "checkbox">
JS
$(function() {
var checkboxes = $("input[type=checkbox]")
checkboxes.is(':checked').css('background-color', 'red')
checkboxes.on('change', function() {
var checkbox = $(this)
checkbox.css('background-color', checkbox.is(':checked') ? 'blue' : 'transparent')
})
})
CSS
input[type='checkbox'] {
-webkit-appearance: none;
width: 20px;
height: 20px;
background: grey;
}
input[type='checkbox']:checked {
background: red;}
Также вот ссылка: https://jsfiddle.net/3y9Lvobc/2/
Ошибка в консоли:
checkboxes.is(...).css is not a function



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


.is возвращает логическое значение, а не объект jquery. Так что у него нет метода .css.
Вместо этого вы можете использовать .filter
checkboxes.filter(':checked').css('background-color', 'red')
.filter вернет все флажки, которые стоят :checked.
Или, в качестве альтернативы, вы можете использовать условие if, как показано ниже:
if (checkboxes.is(':checked')) {
checkboxes.css('background-color', 'red');
}
Это потому, что он возвращает true/false
Проверить здесь
Returns true if there is at least one match from the given argument, and false if not.
Вместо использования свойства is(:checked) замените его на find(:checked), что устранит ошибку. проверьте приведенный ниже скрипт jquery
$(function()
{
var checkboxes = $("input[type=checkbox]")
checkboxes.find(':checked').css('background-color', 'red')
checkboxes.on('change', function() {
var checkbox = $(this)
checkbox.css('background-color', checkbox.is(':checked') ? 'blue' : 'transparent')
})
})
Проверьте, может ли это помочь.