как искать элемент с помощью queryselector и содержит - PullRequest
0 голосов
/ 05 мая 2020

Каким-то образом я хотел бы напрямую искать какой-то текст? Возможно ли это с помощью querySelector?

Dom:

<div class="div1">
    <span class="text">
        <span> text to search </span>
    </span>
</div>



Я безуспешно пробовал следующее:

JS Код : document.querySelector('div[contains("text to")]') = ОТКАЗ

Я знаю простой способ, например: document.querySelector('span.text > span')
Мой пример прост, я это знаю. Ищу решение похожее на селен selenium driver.find_element_by_link_text Я хочу самостоятельно искать элемент, не полагаясь на класс или идентификатор, какие-либо идеи?

1 Ответ

0 голосов
/ 05 мая 2020

Это невозможно с querySelector напрямую. Вы должны сначала получить все промежутки, а затем перебрать их, чтобы увидеть, какой из них содержит нужный вам текст. Например:

var results = []; 
document.querySelector("span").forEach(elem => {
    if (elem.textContent.includes("text to")) {
        results.push(elem);
    }
});
...