2009-11-03 7 views
5

私はgetElementsByTagName( "a")メソッドを使用して、特定のタグの下にあるすべての要素を取得しようとしています。Javascript getElementsByTagName

しかし、私はすべてのアンカータグを望んでいません。私はどのようにそれを絞り込むので、 "someListClass"という名前のulタグの下のすべてのアンカータグを選択するだけですか?

<ul class="someListClass"> <li><a href... /></li>... </ul>

私はあなただけで$( "someListClass A")を選択することができますjQueryの中で知っています。

どうすればいいですか? jQueryを使用しないでください。

答えて

12

あなたのULにIDを付け、その後

<ul id="ulid" class="someListClass"> <li><a href... /></li>... </ul> 

document.getElementById ("ulid").getElementsByTagName ("a"); 

element.getElementsByTagName

elements = element.getElementsByTagName(tagName); 

要素を使用するには、彼らが サブツリーに表示される順序で見つかった 要素の生きたNodeListです。

要素は、 検索を開始する要素です。この要素の子孫である のみが、検索に含まれる であり、 要素ではないことに注意してください。

tagNameは、 を表示する修飾名です。特殊文字列「*」は、すべての要素を と表します。 XHTMLとの互換性のために、小文字を使用する必要があります。

0

フレームワークがなければ、私は各要素を手作業で実行し、その親を反復する以外の方法は考えられません。いずれかのクラスに "somelistClass"クラスがある場合は、それをスタックに追加します。そうでなければ、そうではない。

単一要素の子供を探している場合は、phoenixのアプローチが必要です。

2

あなたは要素が... ULアイテムですので、UL項目は、そのに対して検索つかむ

element.getElementsByTagName(tagName) 

を使用することができます。以下のようなもの:

<ul class="someListClass" id="myList"> <li><a href... /></li>... </ul> 

var theList = document.getElementById('myList'); 
var listItems = theList.getElementsByTagName('li'); 
関連する問題