2016-05-12 9 views
0

現在、クラスに何かが含まれているかどうかによって、要素のIDを取得する方法を見つけようとしています。私は現在よりも良い方法があるかどうかは分かりませんが、私の必要性にぴったりのものは何も見ていません。私が現在持っているコードは、クラスに文字列 "one"が含まれているが、それに限定されないdiv要素を探しているところです。現在のところ、この文字列を含む唯一の要素がありますが、アラートは、[オブジェクトのNodeList](私はよくこれを過度に複雑することができる)で私を提供します。あなたの場合クラスに指定された文字列が含まれている要素のIDを取得する

$idToMove = document.querySelectorAll('div[class^="one"]'); 
     alert($idToMove); 
+0

[要素IDに特定のテキストが含まれているページのすべての要素をjQueryを使用して検索する](http://stackoverflow.com/questions/1206739/find-all-elements-on-a-page-その要素IDは、特定のテキストを使用するjquerを含む) – TylerH

答えて

2

document.querySelectorAll()は、(種類の配列のような)ノードのリストを返します。あなたがカップルのオプションを持っていることが1つだけになることを確信しています。

1)が代わりに.querySelectorを使用してください:

// returns the first node that matches 
var elm = document.querySelector('div[class~="one"]'); 
console.log(elm.id); 

2)が返されたリストの最初の要素にアクセスします。

// returns all nodes that match 
var elms = document.querySelectorAll('div[class~="one"]'); 
console.log(elms[0].id); 

.querySelectorAll.querySelectorと長さチェックリターンのリターンをチェックnullに確認してください。

^=ではなく、~=を使用しています。すべての等価演算子の違いについてはon the MDNを読むことができます。しかし、これらの2のために:

[attrの〜=値] まさに「値」であるそのうちの一つ、値の単語を空白で区切ったリストであるATTRの属性名を持つ要素を表します。

[attr^= value] 属性名がattrで、最初の値の前に "value"というプレフィックスがある要素を表します。

+0

答えをありがとう!私はnullを返すようです(私はこれを解決するために部分解決1を使用しました)。私はクラスをPHPに "one"を含めるように設定していますか? **は**クラスを文字列 "one"を含むようにしていますが、console.logにしようとすると、nullのIDを私に与えることはできません。 – Wesley

+0

答えが更新されました。 '= ='ではなく '^ ='が必要です。 – Chad

+0

ご協力ありがとうございます、それは動作します!とても有難い! – Wesley

関連する問題