JQuery: выбор по классу и типу ввода
Я хотел бы выбрать набор элементов, которые являются как определенным типом ввода (например, флажок), так и определенным классом с использованием jQuery. Однако, когда я пытаюсь сделать следующее:
$("input:checkbox .myClass")
Я не получаю возвращенных элементов. Как это сделать в jQuery?
Ответы
Ответ 1
Ваш селектор ищет всех потомков элемента флажка, который имеет класс .myClass
.
Попробуйте это вместо:
$("input.myClass:checkbox")
Проверьте это в действии.
Я также испытал это:
$("input:checkbox.myClass")
И он также будет работать правильно. По моему скромному мнению, этот синтаксис действительно выглядит довольно уродливым, так как большую часть времени я ожидаю, что селектор стиля :
будет последним. Как я уже сказал, любой из них будет работать.
Ответ 2
Если вы хотите получить входы этого типа с этим классом, используйте:
$("input.myClass[type=checkbox]")
Синтаксис селектора [] позволяет вам проверять любые атрибуты элементов.
Подробнее см. спецификацию.
Ответ 3
Вы должны использовать имя класса, подобное этому
$(document).ready(function(){
$('input.addCheck').prop('checked',true);
});
Попробуйте использовать живая демонстрация
Ответ 4
Вы должны использовать (для флажков) :checkbox
и атрибут .name
для выбора по классу.
Например:
$("input.aclass:checkbox")
Селектор :checkbox
:
Соответствует всем элементам входных элементов типа. Используя это psuedo-selector like $(':checkbox')
эквивалентен $('*:checkbox')
который является медленным селектором. Он рекомендовал сделать $('input:checkbox')
.
Вы должны прочитать документацию jQuery, чтобы узнать о селекторах.
Ответ 5
Попробуйте следующее:
$("input:checkbox").hasClass("myClass");
Ответ 6
На всякий случай, если такие манекены, как я, попробовали здесь предложения с помощью кнопки и ничего не нашли, вы, вероятно, захотите:
$(':button.myclass')