Javascript-检查div是否包含单词?
如何检查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
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');