Sélecteur jQuery: l’ID se termine par?

Existe-t-il un selector que je peux interroger pour les éléments dont l’ID se termine par une chaîne donnée?

Disons que j’ai un élément avec un identifiant de ctl00$ContentBody$txtTitle . Comment puis-je obtenir cela en passant juste txtTitle ?

Si vous connaissez le type d’élément alors: (par exemple: remplacez “element” par “div”)

$("element[id$='txtTitle']")

Si vous ne connaissez pas le type d’élément:

$("[id$='txtTitle']")

Plus d’informations disponibles


 // the old way, needs exact ID: document.getElementById("hi").value = "kk"; $(function() { $("[id$='txtTitle']").val("zz"); }); 
   

La réponse à la question est $("[id$='txtTitle']") , comme Mark Hurd a répondu , mais pour ceux qui, comme moi, veulent trouver tous les éléments avec un identifiant qui commence par une chaîne donnée (for exemple txtTitle), essayez ceci ( doc ):

 $("[id^='txtTitle']") 

Si vous voulez sélectionner des éléments dont l’identifiant contient une chaîne donnée ( doc ):

 $("[id*='txtTitle']") 

Si vous voulez sélectionner des éléments dont id n’est pas une chaîne donnée ( doc ):

 $("[id!='myValue']") 

(il correspond également aux éléments qui n’ont pas l’atsortingbut spécifié)

Si vous voulez sélectionner des éléments dont l’identifiant contient un mot, délimité par des espaces ( doc ):

 $("[id~='myValue']") 

Si vous voulez sélectionner des éléments dont id est égal à une chaîne donnée ou commençant par cette chaîne suivie d’un tiret ( doc ):

 $("[id|='myValue']") 

Essayer

 $("element[id$='txtTitle']"); 

edit: 4 secondes de retard: P

 $('element[id$=txtTitle]') 

Il n’est pas ssortingctement nécessaire de citer le fragment de texte correspondant

Il est plus sûr d’append le trait de soulignement ou $ au terme que vous recherchez afin qu’il soit moins probable de correspondre à d’autres éléments se terminant par le même identifiant:

 $("element[id$=_txtTitle]") 

(où element est le type d’élément que vous essayez de trouver – par exemple, div , input etc.)

(Remarquez que vous suggérez que vos identifiants contiennent des signes $, mais je pense que .NET 2 utilise désormais plutôt des traits de soulignement dans l’ID, donc mon exemple utilise un trait de soulignement).

Un exemple: pour sélectionner tous les s avec un identifiant se terminant par _edit:

 jQuery("a[id$=_edit]") 

ou

 jQuery("a[id$='_edit']") 

Comme il s’agit d’ASP.NET, vous pouvez simplement utiliser la balise ASP <% =%> pour imprimer l’identifiant client généré de txtTitle:

 $('<%= txtTitle.ClientID %>') 

Cela se traduira par …

 $('ctl00$ContentBody$txtTitle') 

… quand la page est rendue.

Remarque: dans Visual Studio, Intellisense vous criera de placer des balises ASP dans JavaScript. Vous pouvez ignorer cela car le résultat est un code JavaScript valide.

Essaye ça:

  var test = $(this).find('[id*="_h"').val(); 

Afin de trouver un identifiant iframe se terminant par “iFrame” dans une page contenant de nombreux iframes.

 jQuery(document).ready(function (){ jQuery("iframe").each(function(){ if( jQuery(this).attr('id').match(/_iFrame/) ) { alert(jQuery(this).attr('id')); } }); });