特定の属性(たとえば、属性「title」を持つすべての「a」タグ)を含む(Webページの)すべてのリンクを参照したいのですが、
どうすればよいですか?
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]);
}
}
またはこのテーマのバリエーション
編集
私はいくつか掘り下げました、おそらく別のアプローチはツリーウォーカーを使用することでしょう:
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 に答える