web-dev-qa-db-fra.com

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 cela ne fonctionne pas ..

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

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

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

$("[id^=jander]")

Pour obtenir ceux qui se terminent par "jander"

$("[id$=jander]")

Voir aussi le documentation JQuery

1197
nico

Puisque le titre suggère un caractère générique, vous pouvez également utiliser ceci:

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

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

113
Martijn Smidt

Essayez le jQuery commence avec

sélecteur, '^ =', par exemple

[id^="jander"]

Je dois demander cependant, pourquoi ne voulez-vous pas faire cela en utilisant des classes?

36
GoatInTheMachine

pour les cours, vous pouvez utiliser:

div[class^="jander"]
34
l3thal

Pour obtenir l'id de la correspondance avec le caractère générique:

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

Lorsque vous avez une chaîne d’identification plus complexe, les guillemets doubles sont obligatoires.

Par exemple, si vous avez un identifiant comme celui-ci: id="2.2", la manière correcte d'y accéder est la suivante: $('input[id="2.2"]')

Autant que possible, utilisez les guillemets doubles, pour des raisons de sécurité.

10
eduard