Подтвердить что ты не робот

Javascript - проверьте, содержит ли div слово?

Как проверить, содержит ли div определенное слово?

var divs= document.getElementsByTagName('div');
for (var i = 0, len = divs.length; i < len; ++i) {

    if (divs[i].text = '*word*'){
    //do somthing
}
}

не работает.

4b9b3361

Ответ 1

используйте функцию indexOf

if(divs[i].innerHTML.indexOf("word") != -1) {
    // something
}

Ответ 2

if (document.getElementById('divId').innerHTML.indexOf("word") != -1) { }

Ответ 3

Попробуйте String.indexOf(): if (divs[i].text.indexOf('word') != -1) {

Ответ 4

Вы должны использовать оператор сравнения, не назначающий переменную.

if (divs[i].text == '*word*'){

Я бы рекомендовал использовать indexOf.

if (divs[i].text.indexOf('*word*') != -1){

Ответ 5

В дополнение к тому, что другие говорили об использовании функции .indexOf(), я бы хотел сказать, что .text не является свойством div node. Пользователь .innerHTML

if (divs[i].innerHTML.indexOf('word') > -1){}

Ответ 6

Гоша, так много ответов!

Чтобы получить только текст элемента, простым способом является использование textContent или, где не поддерживается, innerText. Все используемые браузеры поддерживают один или другой (возможно, оба). Вы также можете использовать регулярное выражение (indexOf тоже работает, RegExp - это просто опция), поэтому:

var re = new RegExp('*' + word + '*');

if (re.test(div[i].innerText || div[i].textContent)) {
  // div[i] contains /*word*/
} 

Более надежное решение будет выглядеть следующим образом:

function getText(el) {
  if (typeof el.textContent == 'string') {
    return el.textContent;
  }
  if (typeof el.innerText == 'string') {
    return el.innerText;
  }
}

var re = new RegExp('*' + word + '*');

if (re.test(getText(div[i]))) {
  // div[i] contains /*word*/
} 

Ответ 7

использовать regexp:

if ( divs[i].textContent.match ( /\bword\b/ ) ){
    //do something
}

@RobG напомнил мне об этом

if ( divs[i].innerHTML.match ( /\bword\b/ ) ){
    //do something
}

= 3 =

Ответ 8

Используйте includes():

node.textContent.includes('Some text');