Javascript 如果另一个div具有特定的文本字符串,则显示div

Javascript 如果另一个div具有特定的文本字符串,则显示div,javascript,html,Javascript,Html,我知道这对你们大多数人来说可能很容易,但作为一个初学者,我的日子不好过 我想向div1展示div2中是否有foobar这个词 if (/\bfoobar\b/.test(document.getElementById('div2').innerHTML){ document.getElementById('div1').style.display = 'block'; } 这使用正则表达式/\bfoobar\b/来精确测试两端都有单词边界的字符串“foobar”。“foobar”不会匹配,

我知道这对你们大多数人来说可能很容易,但作为一个初学者,我的日子不好过

我想向div1展示div2中是否有foobar这个词

if (/\bfoobar\b/.test(document.getElementById('div2').innerHTML){
  document.getElementById('div1').style.display = 'block';
}
这使用正则表达式
/\bfoobar\b/
来精确测试两端都有单词边界的字符串“foobar”。“foobar”不会匹配,但“我说的是foobar”会匹配

RegExp.prototype.test()

我们传入div的
innerHTML
,它与div中的源代码类似

我假设您已经通过JS或样式表将其
显示
样式设置为
none
来隐藏
div
,例如

#div1{display:none}
哦,如果您喜欢jQuery,那么:

if ($("#div2").text().indexOf("foobar") >= 0) {
    $("#div1").show();
}

尽管仅仅为此使用jQuery是过分的。不管怎么说,如果它出现在页面上,这是一个很好的语法糖。

@Phrogz innerText在firefox中出现中断。(IE是唯一的扩展,不是W3C规范的一部分)@Raynos我想
innerHTML
也是唯一的IE扩展,不是W3C规范的一部分。@Raynos说真的吗?还是。哇,谢谢你让我知道@JaredFarrish,因为这是一种使用单词边界的简单方法,而且不会错误地找到一个实际上是另一个较长单词的一部分的单词。@sdleihssirch似乎就是这样。但它在HTML5规范中。不过,这是从嵌套内容中获取文本的最简单方法@Phrogz无需调用
.test
您可以直接使用正则表达式作为函数来间接调用
.test
。@sdleihssirhc是“DOM级别0”,这意味着从未正式指定过它。它最初是由IE引入的,但很快就被其他浏览器采用了,因此对jQuery的支持在.Heh、+1中得到了扩展,并注意到这太过分了。不过,我还是建议在
索引上加一个regexp,以便在“sand”中找不到“and”。@Phrogz“word”的定义是不明确的。但是是的,正则表达式可能更好。
if ($("#div2").text().indexOf("foobar") >= 0) {
    $("#div1").show();
}