Javascript-检查div是否包含单词?

Javascript-检查div是否包含单词?,javascript,html,if-statement,contains,Javascript,Html,If Statement,Contains,如何检查div是否包含某个单词 var divs= document.getElementsByTagName('div'); for (var i = 0, len = divs.length; i < len; ++i) { if (divs[i].text = '*word*'){ //do somthing } } var divs=document.getElementsByTagName('div'); 对于(变量i=0,len=divs.length;i

如何检查div是否包含某个单词

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

    if (divs[i].text = '*word*'){
    //do somthing
}
}
var divs=document.getElementsByTagName('div');
对于(变量i=0,len=divs.length;i

不起作用。

请尝试以下函数:
if(divs[i].text.indexOf('word')!=-1){
您必须使用比较运算符,不能分配变量

if (divs[i].text == '*word*'){
我建议使用
indexOf

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

使用regexp:

if ( divs[i].textContent.match ( /\bword\b/ ) ){
    //do something
}
@罗布提醒我

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

=3=

除了其他人所说的使用
.indexOf()
函数之外,我想说的是
.text
不是div节点属性。User
.innerHTML

if (divs[i].innerHTML.indexOf('word') > -1){}
天哪,这么多答案

要仅获取元素的文本,最简单的方法是使用textContent或innerText(如果不支持)。所有正在使用的浏览器都支持其中一种或另一种(可能两者都支持)。您还可以使用正则表达式(indexOf也可以,RegExp只是一个选项),因此:

更稳健的解决方案如下所示:

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*/
} 
使用
includes()


也将匹配HTML标记内容(即标记名称、属性名称和值)。没有指定他要查找的内容类型。我可能错了,但我认为很明显,OP要匹配的是文本内容,而不是标记。在不支持W3C DOM textContent属性的浏览器中无法工作。此外,与使用divs[I]的indexOfReplacing/内容相比,regex速度较慢,需要更多的处理.style.background=“red”仍然突出显示整个页面。如何获取包含“word”的div的引用?诚然,这个问题并不要求深度,但要求完成/好奇会很有趣。includes还不稳定。支持较差
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*/
} 
if (document.getElementById('divId').innerHTML.indexOf("word") != -1) { }
node.textContent.includes('Some text');