7

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


为什么我不能将 id="whatever" 添加到标签中?
我在 xCode 中使用 UIButton,当单击它时,它将 javascript 注入 UIWebView。在那个 UIWebView 里面是一个 H1 元素,它位于我无权添加的网站上<h1 id="whatever">。我希望这是有道理的。

4

5 回答 5

7
document.getElementsByTagName('h1')[0].style.display = 'none';
于 2013-02-12T09:11:20.453 回答
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.
});
于 2013-02-12T09:11:49.403 回答
4

您可以使用getElementsByTagName方法:

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

您要在其中搜索标头的context位置或更具体的父节点在哪里。document

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

.without-headers h1 {display: none;}
于 2013-02-12T09:11:51.160 回答
1

你可以使用getElementsByTagName

document.getElementsByTagName("h1")

但它会访问所有h1元素,所以更具体地说,index像这样访问它

document.getElementsByTagName("h1")[0].style.display = "none";
于 2013-02-12T09:11:23.380 回答
1

dfsq 代码的小改动

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

for (var i =0; i<h.length; i++) {
     document.getElementsByTagName('h1').item(i).style.display = 'none';
    }
于 2013-02-12T09:22:30.810 回答