Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

jquery: не работает выбор элемента по классу и атрибуту одновременно

#javascript #jquery #css


Пытаюсь выбрать все элементы, у которых есть класс choosen и атрибут repeattype.
По отдельности работает, а оба условия сразу - нет:



// все элементы с классом "choosen"
var allChoosen = $('.choosen');
console.log(allChoosen.length); // 1 элемент, как и ожидается

// все элементы с атрибутом "repeattype"
var allRepeattype = $('[repeattype]');
console.log(allRepeattype.length);  // 2 элемента, как и ожидается

// одновременно не получается:
var choosenAndRepeat = $('.choosen [repeattype]');
console.log(choosenAndRepeat.length); // 0 элементов почему-то

// пробовал поиск в выбранных (choosen)
// для наглядности сам элемент:
console.log(allChoosen[0]);
// значение атрибута достать можно:
console.log(allChoosen[0].getAttribute('repeattype'));
// но поиск в choosen по имени атрибута не работает:
console.log(allChoosen.find('[repeattype]').length);  // 0

1
2


Ответы

Ответ 1



У вас неправильно составлен селектор. .choosen [repeattype] означает элементы с атрибутом repeattype, являющиеся потомками элементов с классом choosen Аналогично работает allChoosen.find('[repeattype]') Если необходимо находить элементы с классом choosen и атрибутом repeattype необходимо указывать их в селекторе без пробела .choosen[repeattype]. Если необходимо находить элементы с классом choosen или элементы атрибутом repeattype, то необходимо ставить запятую .choosen, [repeattype] См. также: Знаете ли вы селекторы? Multiple Class / ID and Class Selectors (на английском)

Комментариев нет:

Отправить комментарий