我有两个不同的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。我怎么能这样做?
答案 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();