Javascript 如果另一个div具有特定的文本字符串,则显示div
我知道这对你们大多数人来说可能很容易,但作为一个初学者,我的日子不好过 我想向div1展示div2中是否有foobar这个词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”不会匹配,
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();
}