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')