it-swarm.com.de

Javascript - prüfen, ob div ein Wort enthält?

Wie kann ich überprüfen, ob ein Div ein bestimmtes Wort enthält?

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

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

funktioniert nicht.

22
user1104092

verwenden Sie die Funktion indexOf

if(divs[i].innerHTML.indexOf("Word") !== -1) {
    // something
}
35
Igor Azevedo

Verwenden Sie includes():

node.textContent.includes('Some text');
5
Scott Simpson
if (document.getElementById('divId').innerHTML.indexOf("Word") != -1) { }
3
Nimmi

Zusätzlich zu dem, was andere über die Verwendung der Funktion .indexOf() gesagt haben, möchte ich sagen, dass .text keine div-Knoteneigenschaft ist. Benutzer .innerHTML

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

Meine Güte, so viele Antworten!

Um nur den Text eines Elements abzurufen, verwenden Sie textContent oder - sofern nicht unterstützt - innerText . Alle verwendeten Browser unterstützen den einen oder den anderen (möglicherweise auch beide). Sie können auch einen regulären Ausdruck verwenden (indexOf funktioniert auch, RegExp ist nur eine Option).

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

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

Eine robustere Lösung wäre wie folgt:

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*/
} 
1
RobG

Versuchen Sie die Funktion String.indexOf() : if (divs[i].text.indexOf('Word') != -1) {

1
Adam Rofer

Sie müssen einen Vergleichsoperator verwenden, ohne eine Variable zuzuweisen.

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

Ich würde empfehlen, indexOf zu verwenden.

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

benutze regexp:

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

@RobG erinnert mich daran

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

= 3 =

0
Torrent Lee