734 Stimmen

Wildcards in jQuery-Selektoren

Ich versuche, einen Platzhalter zu verwenden, um die ID aller Elemente zu erhalten, deren ID mit "jander" beginnt. Ich habe versucht $('#jander*') , $('#jander%') aber es funktioniert nicht

Ich weiß, dass ich Klassen der Elemente verwenden kann, um das Problem zu lösen, aber ist es auch möglich, Wildcards zu verwenden?

<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>

2 Stimmen

Dies ist eine Frage über jQuery (oder genauer gesagt die Sizzle-Engine).

1 Stimmen

Nur eine Anmerkung: Es wäre viel schneller, dies mit Klassen zu tun, da jQuery oder Sizzle Browserfunktionen verwenden können (sollte bei modernen Browsern jedoch keinen großen Unterschied machen).

4 Stimmen

Mögliche Duplikate von JQuery-Selektor reguläre Ausdrücke

1389voto

nico Punkte 49590

Um alle Elemente zu erhalten, die mit "jander" beginnen, sollten Sie verwenden:

$("[id^=jander]")

Um diejenigen zu erhalten, die mit "Jander" enden

$("[id$=jander]")

Siehe auch die JQuery-Dokumentation

28 Stimmen

In der Dokumentation wird dieses Beispiel genannt: $('input[name^="news"]').val('news here!')

134voto

Martijn Smidt Punkte 1564

Da der Titel auf einen Platzhalter hindeutet, könnten Sie auch diesen verwenden:

$(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>

Dies wählt die angegebene Zeichenkette irgendwo in der id .

42voto

GoatInTheMachine Punkte 3465

Versuchen Sie die jQuery startet-mit

selector, '^=', eg

[id^="jander"]

Ich muss allerdings fragen, warum Sie das nicht mit Klassen machen wollen?

0 Stimmen

Danke für den Hinweis auf die Klassen, das hat mich auf den richtigen Weg gebracht!

38voto

l3thal Punkte 562

Für Klassen, die Sie verwenden können:

div[class^="jander"]

16voto

PJ Brunet Punkte 3200

An den Ausweis erhalten aus dem Wildcard-Spiel:

$('[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>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X