使用JavaScript隐藏H1元素

时间:2013-02-12 09:08:09

标签: javascript

我想使用普通的javascript而不是jQuery隐藏<h1>元素,而不向标记添加id="whatever"class="whatever"。这可能吗?


为什么我不能只为标签添加id =“whatever”? 我在xCode中使用了一个UIButton,当点击它时,它会将javascript注入UIWebView。在UIWebView内部是一个H1元素,在我无法访问的网站上添加<h1 id="whatever">。我希望这是有道理的。

5 个答案:

答案 0 :(得分:5)

document.getElementsByTagName('h1')[0].style.display = 'none';

答案 1 :(得分:4)

使用getElementsByTagName隐藏页面上的第一个h1

document.getElementsByTagName("h1")[0].style.display = "none";
//                                  ^ index 0, so that's the first `h` that's found.

或者全部隐藏它们:

var headers = document.getElementsByTagName("h1");
for (var i = 0, l = headers.length; i < l; i++; ) {
    headers[i].style.display = "none";
}

或者更好的是,如果你可以修改CSS:

h1{
    display:none;
}

对于JavaScript解决方案,请记住它们仅在加载DOM时才有效。

添加domready事件监听器,如下所示:

window.addEvent('domready', function() {
    // modify your DOM here.
});

答案 2 :(得分:4)

您可以使用getElementsByTagName方法:

var h = context.getElementsByTagName('h1');
for (var i = h.length; i--; ) {
    h[i].style.display = 'none';
}

contextdocument或更具体的父节点,您希望在其中搜索您的标头。

然而,有更好的解决方案。您可以将特定类添加到某个父节点,并使用CSS隐藏子标题:

.without-headers h1 {display: none;}

答案 3 :(得分:1)

您可以使用getElementsByTagName

document.getElementsByTagName("h1")

但它会访问所有h1个元素,因此更具体地通过index来访问它

document.getElementsByTagName("h1")[0].style.display = "none";

答案 4 :(得分:1)

dfsq代码中的小变化

var h = document.getElementsByTagName('h1');

for (var i =0; i<h.length; i++) {
     document.getElementsByTagName('h1').item(i).style.display = 'none';
    }