Как проверить, содержит ли div определенное слово?
var divs= document.getElementsByTagName('div');
for (var i = 0, len = divs.length; i < len; ++i) {
if (divs[i].text = '*word*'){
//do somthing
}
}
не работает.
Как проверить, содержит ли div определенное слово?
var divs= document.getElementsByTagName('div');
for (var i = 0, len = divs.length; i < len; ++i) {
if (divs[i].text = '*word*'){
//do somthing
}
}
не работает.
используйте функцию indexOf
if(divs[i].innerHTML.indexOf("word") != -1) {
// something
}
if (document.getElementById('divId').innerHTML.indexOf("word") != -1) { }
Попробуйте String.indexOf()
: if (divs[i].text.indexOf('word') != -1) {
Вы должны использовать оператор сравнения, не назначающий переменную.
if (divs[i].text == '*word*'){
Я бы рекомендовал использовать indexOf
.
if (divs[i].text.indexOf('*word*') != -1){
В дополнение к тому, что другие говорили об использовании функции .indexOf()
, я бы хотел сказать, что .text
не является свойством div node. Пользователь .innerHTML
if (divs[i].innerHTML.indexOf('word') > -1){}
Гоша, так много ответов!
Чтобы получить только текст элемента, простым способом является использование 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*/
}
использовать regexp:
if ( divs[i].textContent.match ( /\bword\b/ ) ){
//do something
}
@RobG напомнил мне об этом
if ( divs[i].innerHTML.match ( /\bword\b/ ) ){
//do something
}
= 3 =
Используйте includes()
:
node.textContent.includes('Some text');