642 votes

Caractères génériques dans les sélecteurs jQuery

J'essaie d'utiliser un caractère générique pour obtenir l'identifiant de tous les éléments dont l'identifiant commence par "jander". J'ai essayé $('#jander*') , $('#jander%') mais ça ne marche pas..

Je sais que je peux utiliser les classes d'éléments pour le résoudre, mais il est également possible d'utiliser des caractères de remplacement ?

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

1234voto

nico Points 21115

Pour obtenir tous les éléments commençant par "jander" vous devriez utiliser :

$("[id^=jander]")

Pour obtenir ceux qui se terminent par "jander".

$("[id$=jander]")

Voir également le Documentation sur JQuery

113voto

Martijn Smidt Points 401

Puisque le titre suggère le terme "wildcard", vous pourriez également utiliser ceci :

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

<script>
$(document).ready(function(){
    console.log($('[id*=ander]'));
});
</script>

Ceci sélectionnera la chaîne donnée n'importe où dans l'id

37voto

GoatInTheMachine Points 708

Essayez le sélecteur jQuery starts-with, '^=', par ex.

[id^="jander"]

Je dois cependant demander pourquoi vous ne voulez pas faire ça en utilisant des classes ?

34voto

l3thal Points 235

Pour les classes que vous pouvez utiliser :

div[class^="jander"]

13voto

PJ Brunet Points 640

Pour "obtenir l'identifiant" à partir de la correspondance avec le caractère générique :

<div id="pick_1">moo1</div>
<div id="pick_2">moo2</div>
<div id="pick_3">moo3</div>

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

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

    }
);
</script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X