隐藏具有指定ID的元素

时间:2011-07-07 14:47:14

标签: javascript jquery html

我有两个不同的div

var promptContent = $('<div id="errorr">').addClass("formErrorContent").html(promptText).appendTo(prompt);
var arrow = $('<div id="errorrarrow">').addClass("formErrorArrow");

我想在这样的javascript中使用他们的id

  function windowclose()
{
    document.getElementById('add_project').style.display="none";
    document.getElementById('blanket').style.display="none";
    document.getElementById('errorr').style.display="none";
    document.getElementById('errorrarrow').style.display="none";

//     $("#blanket").fadeIn("none");
//        $("#add_project").fadeIn("none");
}

但在这里它只隐藏了第一个div。我想隐藏所有具有相同ID的div。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

选择使用名称还是ID:

getElementsByName('errorr')在DOM中搜索名为errorr

的元素

getElementById('errorr')在DOM中搜索id等于errorr的元素;

尝试更改代码:

document.getElementsByName('errorr').style.display="none";
document.getElementsByName('errorrarrow').style.display="none";

document.getElementById('errorr').style.display="none";
document.getElementsById('errorrarrow').style.display="none";

还要注意,DOM必须具有所有唯一ID(作为规则)

<强>更新

好吧,如果你需要隐藏一组div,我通常会添加一个像.element-to-hide这样的类:

<div id="asd" class="element-to-hide">...
<div id="lol" class="element-to-hide">...
<div id="foo" class="element-to-hide">...
只需点击jQuery

,就可以看到

Ant

$('.element-to-hide').each(function(){
  $(this).hide();
});

希望这个帮助

答案 1 :(得分:1)

即使在许多元素上使用相同的ID在语义上无效,您也可以在单个jQuery行中执行此操作。

$('#errorr, #errorrarrow').hide();