#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); // 012
Ответы
Ответ 1
У вас неправильно составлен селектор. .choosen [repeattype] означает элементы с атрибутом repeattype, являющиеся потомками элементов с классом choosen Аналогично работает allChoosen.find('[repeattype]') Если необходимо находить элементы с классом choosen и атрибутом repeattype необходимо указывать их в селекторе без пробела .choosen[repeattype]. Если необходимо находить элементы с классом choosen или элементы атрибутом repeattype, то необходимо ставить запятую .choosen, [repeattype] См. также: Знаете ли вы селекторы? Multiple Class / ID and Class Selectors (на английском)
Комментариев нет:
Отправить комментарий