2009年12月20日

jQuery #idでは一つし要素か選択できない、同じIDを持つ複数要素を選択するには

そもそもIDというのは一つのページ内でユニークなはずですが、
何らかの理由で同じIDを持つ形になったとしましょう。
その場合普通のjQueryの#idセレクタでは一つの要素(順番的に最初に合致した要素)しか選択できません。
そこで[id=xx]の形で属性フィルタで全ての選択することができます。
以下サンプルコードです。

$("#foo").css("background-color","gray");
$("[id=bar]").css("background-color","green");
<h2>use #id selector</h2>
<input type="text" id="foo" value="Text1" />
<input type="text" id="foo" value="Text2" />
<h2>use attribute selector *id=xx*</h2>
<input type="text" id="bar" value="Text3" />
<input type="text" id="bar" value="Text4" />
<input type="text" id="bar" value="Text5" />

jQuerySelectorByID

Demo

以下のjsfiddleで実際実行してみてくださいー

Share on Twitter Share the post
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。

他にも英語中国語で書いてます、よろしければチェックしてみてください。