2012-05-09 7 views
0
私は(属性「タイトル」を持っているなど、すべての「」のタグを特定の属性が含まれている(Webページの)すべてのリンクをブラウズしたい


私はこれを行うことができますどのように?Webページのタグを見る

+0

http://api.jquery.com/category/selectors/ – dgabriel

+0

「すべてのリンクを参照し、」どういう意味ですか? – lucuma

+0

@dgabriel:jQueryタグが欠けていましたか? –

答えて

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を使って:

ドキュメントオブジェクト document.linksのデフォルトプロパティであるノードのリストについては、あなたがそうのように、それを繰り返すことができますどのように
var withTitle = $('a[title]'); 
+0

私はその答えを期待していなかったので、ありがとうございました – user1319236

0

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

またはこのテーマ上の任意のvariaton

編集

私はおそらく別のアプローチが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これよりも、thisは、全体の概念の良い紹介です。

最後に、あなたがIEの互換性を気にしない場合:document.querySelectorAll('a[title]');はトリックを行います

+0

私はそれを持っていましたが、なぜこのプロパティを使用していましたか? – user1319236

+0

jQueryセレクタを参照している場合、「直接リストを持つことができますか?」ということは、基本的にスクリーンの背後でこれと同様のコードを実行します。違いは、純粋なJSを使用する方が高速で、大量のlibを読み込む必要がないということです。 'document.links'はノードリストなので、' namedItem() 'メソッドを使うこともできます。これは有用であると思われます(' $( '#someId') 'は' document.links .namedItem( 'someId') 'など)。 –

関連する問題