Javascript - check if div contains a word?

后端 未结 8 1604
情话喂你
情话喂你 2020-12-25 11:32

How can I check if a div contains a certain word?

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

           


        
相关标签:
8条回答
  • 2020-12-25 11:41
    if (document.getElementById('divId').innerHTML.indexOf("word") != -1) { }
    
    0 讨论(0)
  • 2020-12-25 11:43

    use the indexOf function

    if(divs[i].innerHTML.indexOf("word") !== -1) {
        // something
    }
    
    0 讨论(0)
  • 2020-12-25 11:44

    Try the String.indexOf() function: if (divs[i].text.indexOf('word') != -1) {

    0 讨论(0)
  • 2020-12-25 11:53

    Use includes():

    node.textContent.includes('Some text');
    
    0 讨论(0)
  • 2020-12-25 11:53

    Gosh, so many answers!

    To get just the text of an element, the simple way is to use textContent or, where not supported, innerText. All browsers in use support one or the other (maybe both). You can also use a regular expression (indexOf works too, a RegExp is just an option) so:

    var re = new RegExp('*' + word + '*');
    
    if (re.test(div[i].innerText || div[i].textContent)) {
      // div[i] contains /*word*/
    } 
    

    A more robust solution would be like:

    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*/
    } 
    
    0 讨论(0)
  • 2020-12-25 11:53

    use regexp:

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

    @RobG remind me so

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

    =3=

    0 讨论(0)
提交回复
热议问题