代码之家  ›  专栏  ›  技术社区  ›  Matthew Daly

有没有一种方法可以在javascript中获得对web页面中所有段落或标题的引用?

  •  1
  • Matthew Daly  · 技术社区  · 14 年前

    我正在写一个简单的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 回复  |  直到 14 年前
        1
  •  1
  •   Gabe    14 年前

    使用jquery可以得到 <p> 元素。

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

    Here's 关于jquery和greasemonkey的一些信息的链接

        2
  •  3
  •   friedo    14 年前

    如果标题在 <h1> - <h6> 标签,您可以使用 getElementsByTagName 方法,以及一个循环来获取 <H1gt; <H6 & GT; .

    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() { ... } );