2010-09-06 1 views
1

J'ai une série d'enregistrements avec des identifiants qui leur sont affectés. C'est à dire.Extraire un nombre d'une chaîne à l'aide de jQuery

record1, record2, RECORD3 etc

J'essaie d'obtenir l'identifiant du lien clique dessus à l'aide: -

$("a.removeTier").live('click', function() { 
    var tier = $(this).attr('id').match('/\d+$/'); 
    alert(tier); 
}); 

Le niveau variable ne doit contenir que numérique valeur dans la chaîne. Actuellement, je deviens nul.

Des idées?

Répondre

7

Pourquoi ne pas utiliser slice() ou substring()?

var tier = this.id.slice(6); 
// -> 1, 2, 3... 11... 123, etc 

Exemple - http://jsfiddle.net/TmBQ8/

PS, vous obtenez nulle au moment que vous passez un argument de chaîne à faire correspondre, au lieu d'une expression régulière. Supprimez les citations, par ex. match(/\d+$/). Notez également dans mon exemple, j'ai ignoré en utilisant un wrapper jQuery et attr() car c'est le long chemin et pas aussi efficace que l'accès direct à la propriété.

1

l'aide d'un objet émoussé:

$(this).attr('id').substring("6","7") 

Comme indiqué dans les commentaires, cela ne fonctionne que pour les nombres à un chiffre. Donc, faire ceci:

$(this).attr('id').replace("record", "") 
+0

Je ne suis pas sûr que cela fonctionnera car le nombre pourrait devenir très grand. –

+0

Bien sûr, vous ne savez pas combien de chiffres ce sera. Dans ce cas, essayez ceci. $ (this) .attr ('id'). replace ("record", "") – morgancodes

+0

Et puis, pourquoi le downvote? C'est une solution raisonnable. – morgancodes

0

Si votre identifiant a toujours « record » devant elle alors ...

$("a.removeTier").live('click', function() { 
    var tier = $(this).attr('id').subString("6"); 
    alert(tier); 
}); 

Si vous changez le mot « record » à quelque chose d'autre juste changer le 6 la position du premier numéro.

Questions connexes