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

时间:2011-04-01 01:08:16

标签: javascript html

我知道这对你们大多数人来说可能很容易,但作为初学者,我正处于艰难时期。

如果div2中包含foobar这个词,我想显示div1。

2 个答案:

答案 0 :(得分:5)

// get div 2
var div = document.getElementById("div2");
// get string content
var text = div.innerHTML;
// test if foobar is in text
if (text.indexOf("foobar") >= 0) {
    // if so set display to block.
    document.getElementById("div1").style.display = "block";
}

哦,如果你喜欢jQuery那么:

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

虽然仅仅为此使用jQuery是过度的。如果它仍在页面上,这是一个很好的语法糖。

答案 1 :(得分:3)

if (/\bfoobar\b/.test(document.getElementById('div2').innerHTML){
  document.getElementById('div1').style.display = 'block';
}

这使用正则表达式/\bfoobar\b/来测试两端带字边界的字符串“foobar”。 “foobars”不会匹配,但“我说'foobar'”会。

RegExp.prototype.test()方法接受一个字符串,如果正则表达式可以在其中某处匹配,则返回true,否则返回false。

我们传入div的innerHTML,就像它里面的源代码一样。

我假设你已经通过JS或样式表将div样式设置为display来隐藏none,例如

#div1 { display:none }