web-dev-qa-db-ja.com

jQueryで特定のIDを持つすべての要素を選択するにはどうすればよいですか?

すべてを選択しようとしています<div>sとjQueryの同じID。どうすればいいのですか?

私はこれを試してみましたが、うまくいきませんでした

jQuery('#xx').each(function(ind,obj){
      //do stuff;
});
68
mark

異なるIDを使用しますが、各DIVに同じクラスを割り当てます。

<div id="c-1" class="countdown"></div>
<div id="c-2" class="countdown"></div>

これには、jQuery( '。countdown')。lengthの戻り値に基づいてIDを再構築できるという利点もあります。


各カウントダウンタイマーに複数のクラスを追加することについてはどうでしょう。 IE:

<div class="countdown c-1"></div>
<div class="countdown c-2"></div>
<div class="countdown c-1"></div>

そうすれば、両方の長所を活用できます。 「IDS」を繰り返すこともできます

40
Ballsacian1

ここには他の正しい答え(クラスの使用など)がありますが、学問の観点から、同じIDを持つ複数のdivを持つことはもちろん可能であり、jQueryでそれらを選択することは可能です。

使用するとき

jQuery("#elemid") 

指定されたIDを持つ最初の要素のみを選択します。

ただし、属性で選択すると(例:id)、一致するすべての要素が次のように返されます。

jQuery("[id=elemid]") 

もちろん、これは任意の属性の選択に対して機能し、問題のタグを指定することで選択をさらに絞り込むことができます(例:div

jQuery("div[id=elemid]") 
380
mydoghasworms

ドキュメントには、同じIDを持つ2つのdivを含めないでください。これは 無効なHTML であり、その結果、基になるDOM APIはそれをサポートしません。

HTML標準 から:

id = name [CS]この属性は、要素に名前を割り当てます。この名前はドキュメント内で一意である必要があります。

各divに異なるIDを割り当て、$('#id1, #id2)を使用して両方を選択できます。または、両方の要素(たとえば、_.cls_)に同じクラスを割り当て、$('.cls')を使用して両方を選択します。

36
Ayman Hourieh

$("div[id^=" + controlid + "]")は同じ名前のすべてのコントロールを返しますが、どのコントロールにもテキストが表示されないようにする必要があります

4
Niranjan Kumar

各タイマーに一意のCSSクラスを割り当てることはできますか?そうすれば、CSSクラスのセレクターを使用できます。これは、複数のdiv要素で正常に機能します。

2
Paul Morie

最初のIDでdivを選択するためにこれを試してください

$('div[id^="c-"]')
2
atabak

また、2つのdivを一意のIDを持つ2つのdivにラップしてみることもできます。次に、$("#div1","#wraper1")および$("#div1","#wraper2")でdivを選択します

どうぞ:

<div id="wraper1">
<div id="div1">
</div>
<div id="wraper2">
<div id="div1">
</div>
1
omer