有没有办法在JavaScript中引用网页中的所有段落或标题?

时间:2010-04-07 17:39:41

标签: javascript dom

我正在写一个简单的Greasemonkey脚本来删除网页上的所有图像,标题和段落(这是因为有人想要使用几个热门网站的图像,在关于网站品牌的演示文稿中删除图像和文字)。通过使用for循环和document.images数组,我已经想出如何使用图像这样做:

var i = 0;
var imglngth = document.images.length;

for(i=0;i<imglngth;i++)
{
    document.images[i].style.display="none";
}

但是,我不相信有一个对象代表段落或标题。关于如何实现这个的任何建议?

2 个答案:

答案 0 :(得分:3)

如果标头位于<h1> - <h6>标签中,您可以使用DOM API中的getElementsByTagName方法,以及一个循环来获取从<h1>到{<h6>的所有内容{1}}。

for( i = 1; i<= 6; i++ ) { 
    var tag = 'h' + i;
    var heads = document.getElementsByTagName( tag );
    for ( j = 0; j < heads.length; j++ ) { 
        heads[j].style.display = 'none';
    }
}

如果文档没有使用标题标记,您可能需要对其样式表进行逆向工程并使用更多逻辑做一些事情。

当然,手动遍历DOM API可能会很痛苦。如果你可以使用像jQuery这样的东西,那就容易多了:

$( ':header' ).each( function() { ... } );

答案 1 :(得分:1)

使用jQuery将获得所有<p>个元素。

$('p').each(function(){
   // do stuff
});

Here's有关jQuery和GreaseMonkey的一些信息的链接