我想使用普通的javascript而不是jQuery隐藏<h1>
元素,而不向标记添加id="whatever"
或class="whatever"
。这可能吗?
为什么我不能只为标签添加id =“whatever”?
我在xCode中使用了一个UIButton,当点击它时,它会将javascript注入UIWebView。在UIWebView内部是一个H1元素,在我无法访问的网站上添加<h1 id="whatever">
。我希望这是有道理的。
答案 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';
}
context
是document
或更具体的父节点,您希望在其中搜索您的标头。
然而,有更好的解决方案。您可以将特定类添加到某个父节点,并使用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';
}