2010-12-06 6 views
0
<div> 
    <p> 
     <a></a> 
    </p> 
</div> 

上記のコードでは、jQueryの場合は$('div p a')を使用して<a>要素を取得できますが、javascriptでは$('div p a')のような<a>要素を取得するにはどうすればよいですか?Javascript - 要素を取得する

<a> 更新された2
私は多くの <a>要素を持っていて、特定の <a>要素のインデックスがわからない場合、この特定の <a>要素が <div id="some">の下にあることを知っているだけですが、どうすればjavascriptで <a>要素を取得できますか?

+0

は、なぜあなたはjQueryのを使用したくありませんか?ただ学びますか? –

+0

jQueryはいくつかのページで動作しません。その理由を見つけることができませんので、要素をjavascriptで入手しようとしています –

答えて

1

あなたのJavaScriptにdivが、それJSFiddle example

HTML

<div> 
    <p> 
     <a></a> 
    </p> 
</div> 
<div id="some"> 
    <a href="#">my a tag</a> 
</div> 

aタグを取得

var elems = document.getElementById('some').getElementsByTagName('a'); 
alert(elems[0].innerHTML); 
+0

ありがとう、私は考えを得る。 –

0

要素のIDのようにさらに情報がある場合は、document.getElementById('id')を使用できます。 xpathの

、見てみましょう:あなたはまた、XPathを使用することができます

:そうでなければ、あなたはこれを見、DOMツリーをトラバースすることができますこのチュートリアル(実際にチュートリアルのサンプル部分):

あなたの例では

  • http://www.w3schools.com/xpath/xpath_examples.asp
  • +0

    しかし、XPathは追加のライブラリなしでネイティブに動作しますか? –

    +0

    これはネイティブで動作しますが、異なるブラウザを検討する必要があります.w3schoolの例はブラウザ間での互換性があります。詳細はこちらで確認できます。 Btw、なぜjQueryを使用しないのですか?それがどうしても作られた理由です... –

    +0

    更新された2を参照してください –

    0

    。最初にすべてのdivを繰り返し、そのdivですべての段落を取得し、次にアンカーに対して同じことを行います。

    +0

    plaeseは更新された参照2 –

    0

    jQueryはJavascriptです。私はあなたが標準のJavascript DOM関数を意味すると思います。また、jQueryを使用する方がよいでしょう。ホイールを再作成しようとするのではなく、何が間違っているかを調べることです。 1つのことは別のものにつながるでしょう。長期的には、jQueryのような具体的なライブラリをバックアップする方が良いでしょう。このようなCSS3セレクタを実際に使用する必要がある場合は、Sizzle libraryを使用してください。 Sizzleは、この目的のためにjQueryグループによって作成されました。 (満足しているユーザー以外はjQueryやSizzleには関連付けられていません)。

    0

    これらの日を取得することができ、我々は持っている:

      document.querySelectorAll

  • document.querySelector
  • 、これらの両方は、jQueryの必要な要素を取得する場合と同じようにCSSセレクタを使用することができます。

    var one = document.querySelector('#some span'); 
     
    document.querySelectorAll('.resultLine')[0].innerHTML = 'We grabbed: "' + one.id + '" with querySelector(\'#some span\')'; 
     
    
     
    var all = document.querySelectorAll('#some span'); 
     
    var idList = ''; 
     
    for (i = 0; i < all.length; i++) { 
     
        if (i>0) { 
     
        idList += ', ';  
     
        } 
     
        idList += '"' + all[i].id + '"' 
     
    } 
     
    document.querySelectorAll('.resultLine')[1].innerHTML = 'We grabbed: ' + idList + ' with querySelectorAll(\'#some span\')';
    #result { 
     
        color: red; 
     
        background: black; 
     
        border: red 1px solid; 
     
    } 
     
    .resultLine { 
     
        display: block; 
     
    }
    <p id="some"> 
     
        <span id="one">1</span> 
     
        <span id="two">2</span> 
     
        <span id="three">3</span> 
     
    </p> 
     
    <p id="result"> 
     
        <span class="resultLine"></span> 
     
        <span class="resultLine"></span> 
     
    </p>

  • 関連する問題