2012-03-07 8 views
0

"refresh"で始まるページのdivのIDを取得できません。特定のIDタグを持つDIVのJavascript配列を作成する

例:私のページに3つのdivがあります。

<div id='refresh5'></div> 
<div id='refresh12'></div> 
<div id='red'></div> 

私は、「リフレッシュ」で始まるdiv要素のJavaScriptを使用してアレイを作成しようとすると、以下のものを使用してみましたよ:、[オブジェクトのオブジェクト]

var arr = $('div[id^="refresh"]'); 
alert(arr); 

しかし、警告が私だけを示していますdiv idの代わりに???

何か助けていただければ幸いです。

私は、セレクタは、私はそれをチェックdidntの権利原因であるが、それがあるとき、あなたはこのようなidを取得する場合は知らない
+1

console.log(arr)を実行すると、オブジェクト。オブジェクトを取り戻す理由は、jQueryがjqueryオブジェクトを返すためです。他の誰かがおそらくそれをよりよく説明することができます。 – Gohn67

+0

デバッガ(私はchromeやfirefoxの開発者ツールをお勧めします)を使用し、デバッグの目的でアラートを使用する代わりにブレークポイントを設定することができます。 –

答えて

1

テストの目的でこれを行う場合は、alertの代わりにconsole.logを使用してください。 javascriptログ(IEのF12を押すか、右クリックしてクロム/サファリの「Inspect element」を選択してください)

0

//your code here... 
var a = []; 
arr.each(function() { 
    a.push($(this).attr('id')); 
}); 

alert(a); 
1

jQueryオブジェクト($()の結果)を配列またはStringではありません。それは目的です。

2

問題は、指定したセレクタが、idのリストではなく、jQueryオブジェクトの配列を返すということです。

ではなく、試してみてください。

var arr = $('div[id^="refresh"]').map(function(){ return this.id;}).get().join(','); 
alert(arr);​ 

JS Fiddle demo

参考文献:

1

jqueryを使用していると思います。 $()は "配列のようなオブジェクト"を返すので、出力は絶対に正しいです!

関連する問題