浏览网页的标签

时间:2012-05-09 23:15:25

标签: javascript webpage

我想浏览包含特定属性的所有(网页的)链接(例如,所有具有“title”属性的“a”标签。
我怎样才能做到这一点 ?

2 个答案:

答案 0 :(得分:3)

var links = document.getElementsByTagName('a'),//Or also document.links
withTitle = [];
for(varn=0;n<links.length;n++)
    if(links[n].getAttribute('title'))
        withTitle.push(links[n]);

或者使用jQuery:

var withTitle = $('a[title]');

答案 1 :(得分:0)

如果节点列表是文档对象document.links的默认属性,您可以迭代它,如下所示:

for (var i=0;i<document.links.length;i++)
{
    if (document.links[i].hasOwnProperty('title'))
    {
        linksWithTitle.push(document.links[i]);
    }
}

或此主题的任何变体

修改

我做了一些挖掘,也许另一种方法是使用树木行者:

function byTitle(node)
{
    if (node.hasOwnProperty('title'))
    {
        return NodeFilter.FILTER_ACCEPT;
    }
    return NodeFilter.FILTER_SKIP;
}

function getElementsWithTitle(root)
{
    root = root || document.links;
    var treeWalker,result;
    treeWalker = document.createTreeWalker(root,NodeFilter.SHOW_ELEMENT,byTitle,false);
    result = [treeWalker.currentNode];
    while(treeWalker.nextNode())
    {
        result.push(treeWalker.currentNode);
    }
    return result;
}

TreeWalkers和NodeFilters / NodeLists还有很多,但this是对整个概念的一个很好的介绍。

最后,如果您不关心IE兼容性:document.querySelectorAll('a[title]');将会解决这个问题