Какой селектор написать, чтобы была проверка сразу по всему тексту?

введите сюда описание изображения

как сделать что-то типа //p[text(),'Each 1h 0m 0s late, deduct 20% of the total points'] ?


Ответы (1 шт):

Автор решения: Zombotron
$x("//*[@class='className'][contains(.,'text')]"; // (консольный вариант,  в коде не работает)

так будет выдирать любую подстроку в innerHTML с захватом всех внутренностей. Просто, text() такое вот "text1<br>text2" интерпретирует как три ноды: text1 - 1, <br> - 2, text2 - 3. Но т.к. ковыряние с xpath цепляет тот же js + еще немного всякого, то я бы все-таки воспользовался чистыми js и html-dom:

pps = document.querySelectorAll('p.className');
for(i=0; i<pps.length; i++){
    el = pps[i];
    txt = el.innerHTML;
    if(txt.indexOf('текст для поиска') != -1){
       // колдунство над найденными и удовлетворяющими поиску el
    }
}
→ Ссылка