документ.querySelector несколько атрибутов данных в одном элементе

Я пытаюсь найти элемент с документом.querySelector, который имеет несколько атрибутов данных:

<div class="text-right" data-point-id="7febe088-4eca-493b-8455-385b39ad30e3" data-period="current">-</div>

Я думал о чем-то вроде этого:

document.querySelector('[data-point-id="7febe088-4eca-493b-8455-385b39ad30e3"] [data-period="current"]')

но это не работает. Однако он работает хорошо, если я помещаю второй атрибут данных в дочерний элемент, такой как

<div class="text-right" data-point-id="7febe088-4eca-493b-8455-385b39ad30e3"> <span data-period="current">-</span> </div>

Итак, есть ли возможность искать оба атрибута сразу? Я пробовал несколько вариантов, но не понял.

2 ответов


не должно быть пространства между 2 селекторами

document.querySelector('[data-point-id="7febe088-4eca-493b-8455-385b39ad30e3"][data-period="current"]')

если вы дадите пространство между ними, оно станет селектор, то есть он будет искать атрибут элемента data-period="current", который находится внутри элемента с data-point-id="7febe088-4eca-493b-8455-385b39ad30e3" как

<div class="text-right" data-point-id="7febe088-4eca-493b-8455-385b39ad30e3">
    <div data-period="current">-</div>
</div>

пробел в селекторе ищет [data-period="current"] на[data-point-id="7febe088-4eca-493b-8455-385b39ad30e3"] .Вам не нужно помещать пространство между селектором значений атрибутов:

document.querySelector('[data-point-id="7febe088-4eca-493b-8455-385b39ad30e3"][data-period="current"]')