Точный поиск элемента по классу
День добрый. Собственно суть. Есть, допустим, много дивов вот с такими именами классов:
<div class="event-container closed-task cancelled-task "> <div class="event-container closed-task cancelled-task CANCELLED "> Использую: getElementsByClassName('event-container closed-task cancelled-task')Мне возвращается nodelist с дивами имеющими оба описанных выше именами классов. Собственно вопрос - как в getElementsByClassName сделать поиск по точному совпадению имени класса? |
'event-container.closed-task.cancelled-task'
|
Цитата:
<div class="event-container closed-task cancelled-task CANCELLED"></div> <script type='text/javascript'> var o=document.getElementsByClassName('event-container.closed-task.cancelled-task'); alert(o.length); </script> |
Цитата:
Можно например так... <div class="event-container closed-task cancelled-task"></div> <div class="event-container closed-task cancelled-task CANCELLED"></div> <script type='text/javascript'> var o=document.querySelectorAll('.event-container.closed-task.cancelled-task:not(.CANCELLED)'); alert(o.length); </script> |
Цитата:
document.querySelector('.event-container.closed-task.cancelled-task') |
Цитата:
1. Автору нужно работать с getElementsByClassName 2. Твой вариант просто выберет первое совпадение. Если использовать querySelectorAll с твоим селектором - так же выберется 2 элемента <div class="event-container closed-task cancelled-task"></div> <div class="event-container closed-task cancelled-task CANCELLED"></div> <script type='text/javascript'> var o=document.querySelectorAll('.event-container.closed-task.cancelled-task'); alert(o.length); </script> |
Цитата:
|
Цитата:
|
Цитата:
Т.о. твой селектор ему не поможет. :no: |
Цитата:
|
Цитата:
Цитата:
Цитата:
Вот собственно и все. |
Цитата:
document.querySelectorAll('.event-container.closed-task.cancelled-task:not(.CANCELLED)'); А нет, так нет. |
лучше так.
var divs = [].filter.call(document.querySelectorAll('.event-container.closed-task.cancelled-task'), el => el.classList.length == 3); |
Цитата:
|
Цитата:
var divs = [].filter.call(document.querySelectorAll('.event-container.closed-task.cancelled-task'), function(el) { return el.classList.length === 3; }); |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 05:53. |