web-dev-qa-db-ja.com

JQueryセレクタのワイルドカード

ワイルドカードを使用して、IDが "jander"で始まるすべての要素のIDを取得しようとしています。 $('#jander*')$('#jander%')を試しましたが、うまくいきません。

私はそれを解決するために要素のクラスを使用できることを知っていますが、ワイルドカードを使用することも可能です。

<script type="text/javascript">

  var prueba = [];

  $('#jander').each(function () {
    prueba.Push($(this).attr('id'));
  });

  alert(prueba);


});

</script>

<div id="jander1"></div>
<div id="jander2"></div>
605
ziiweb

"jander"で始まるすべての要素を得るためにあなたは使うべきです:

$("[id^=jander]")

「ジャンダー」で終わるものを取得する

$("[id$=jander]")

JQueryのドキュメントも参照してください

1171
nico

タイトルがワイルドカードを示唆しているので、あなたはこれも使うことができました:

$(document).ready(function(){
  console.log($('[id*=ander]'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="jander1"></div>
<div id="jander2"></div>

これはidのどこでも与えられた文字列を選択します。

112
Martijn Smidt

JQueryの初めから試してみてください

セレクタ、 '^ ='、例えば

[id^="jander"]

私は尋ねなければならない、なぜあなたはこれをクラスを使ってやりたくないのか?

36

あなたが使用できるクラスのために:

div[class^="jander"]
34
l3thal

ワイルドカードの一致からID を取得します。

$('[id^=pick_]').click(
  function(event) {

    // Do something with the id # here: 
    alert('Picked: '+ event.target.id.slice(5));

  }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="pick_1">moo1</div>
<div id="pick_2">moo2</div>
<div id="pick_3">moo3</div>
13
PJ Brunet

より複雑なID文字列がある場合は、二重引用符が必須です。

たとえば、id="2.2"のようなIDがある場合、それにアクセスする正しい方法は次のとおりです。$('input[id="2.2"]')

安全上の理由から、できるだけ二重引用符を使用してください。

10
eduard