Obtenir une partie d’une chaîne en utilisant jQuery

Code HTML:

Comment puis-je obtenir le numéro “45” de chaîne en utilisant jQuery ?

Pour renvoyer le numéro à la fin d’un atsortingbut id utilisez

 $(this).attr("id").match(/[\d]+$/); 

Ce qui précède renverra 45 si $(this) est

exemple jsFiddle

La façon dont fonctionne ci-dessus consiste à récupérer l’identifiant de l’élément à l’aide de .attr() , puis à regarder l’ id et à utiliser .match() pour récupérer le nombre à la fin. /[\d]+$/ est une regex. [\d] signifie qu’un chiffre + signifie un ou plusieurs (des chiffres). et $ signifie la fin de la ligne.


Vous pouvez utiliser cette fonction pour récupérer les numéros de la fin de tous les div avec un id commençant par block-id- en utilisant l’ atsortingbut qui commence par sélecteur [name^=value] et .each() :

Utilisation pratique:

 $(function() { // Select all DIS that start with 'block-id-' // and iterate over each of them. $("div[id^='block-id-']").each(function() { // You could push this data to an array instead. // This will display it. $("body").append( "Id number: " + // This is the number at the end $(this).attr("id").match(/[\d]+$/) + "
" ); }); });​

exemple jsFiddle

Vous n’avez pas besoin (ou particulièrement envie) de jQuery pour cela (c’est très utile pour beaucoup d’ autres choses, mais pas particulièrement pour cela). Droit JavaScript et DOM:

 var div = document.getElementById('block-id-45'); var n = div.id.lastIndexOf('-'); var target = div.id.subssortingng(n + 1); 

Exemple en direct: http://jsbin.com/osozu

Si vous utilisez déjà jQuery, vous pouvez remplacer la première ligne par:

 var div = $('#block-id-45')[0]; 

… mais il y a peu ou pas de raison de le faire.

Avec jQuery , simplement:

 $("[id='block-id-45']").attr("id").split("-")[2] 

Pour tous les identifiants de bloc – ##, vous pouvez utiliser le motif de masque de la réponse de Peter :

 $("[id^='block-id-']").click(function(){ row_id = $(this).attr("id").split("-")[2]; ............. ............. })