是否可以通过仅使用1个ID名称来隐藏所有元素标记?

时间:2014-09-17 03:27:58

标签: html css dom

我尝试使用一个ID元素隐藏某些标记,但似乎只隐藏了我使用的ID元素的第一个标记。

DEMO:http://jsfiddle.net/mgm3j5cd/

我该如何解决这个问题?我想仅使用我声明的ID元素隐藏标记。赞赏的帮助

2 个答案:

答案 0 :(得分:1)

您已将其标记为CSS,因此页面样式表中的以下CSS可以使用:

#hide {
    display: none;
}

编辑:

如果您只能使用JavaScript,则可以执行以下操作。请记住,通过使用具有相同ID的多个元素,您的文档在技术上已无效,因此这种方法可能无法在每个浏览器中使用。 (我用Firefox 32测试过。)

使用JSFiddle:http://jsfiddle.net/88yw7LL9/2/

function hideByID(string) {
    var element = document.getElementById(string); // get first matching element
    var array = [];
    while(element) {
        array.push(element);
        element.id = string + '-processed'; // change ID so next call gets the next matching element
        element = document.getElementById(string);
    }

    for(var i = 0; i < array.length; i++) {
        array[i].id = string; // revert ID to previous state
        array[i].style.display="none"; // hide
    }
}

hideByID('hide');

答案 1 :(得分:0)

最简单的解决方案应该是将“class”属性分配给您要隐藏的某些元素,例如:

.XXXX
{
   display:none;
}

也许,您想要指定一些隐藏了id的元素,例如:

#id1 , #id2
{
   display:none;
}

div#id1 , div#id2 //more accurate
{
   display:none;
}

但遗憾的是,您无法使用一个ID隐藏所需的元素。