我想浏览所有包含特定属性的(网页的)链接(例如,所有具有属性“title”的“a”标签。
我该怎么做?
user1319236
问问题
55 次
2 回答
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]');
于 2012-05-09T23:16:52.660 回答
0
作为文档对象的默认属性的节点列表怎么样document.links
,您可以对其进行迭代,如下所示:
for (var i=0;i<document.links.length;i++)
{
if (document.links[i].hasOwnProperty('title'))
{
linksWithTitle.push(document.links[i]);
}
}
或有关此主题的任何变体
编辑
我做了一些挖掘,也许另一种方法是使用treewalker:
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 远不止这些,但这是对整个概念的一个很好的介绍。
最后,如果您不关心 IE 兼容性:document.querySelectorAll('a[title]');
会成功的
于 2012-05-09T23:20:47.313 回答