2010-11-23 6 views
0

Très bien, donc j'ai un élément HTML comme <div id="slide_item_#"># est un nombre. Ce que je voudrais faire, en utilisant Javascript, est d'obtenir le numéro de l'ID. Donc je suppose une expression régulière, je ne sais pas comment les utiliser en Javascript.Obtenir le numéro de l'ID HTML en utilisant Javascript

var html_id = "slide_item_3"; 
var id_number = /* code here so that id_number == 3 */ ; 

Répondre

5

Je voudrais juste analyser la chaîne sans le préfixe en utilisant parseInt(), comme ceci:

var id_number = parseInt(html_id.replace('slide_item_',''), 10); 

Une amélioration, si vous avez la possibilité, impliquerait de nommer vos classes pour votre élément le Identique à votre id (c'est-à-dire, "slide_item"), sauf que votre identifiant aurait le bon numéro ajouté à la fin (par exemple, "slide_item2"). Ensuite, dans votre code, vous utilisez simplement this.className au lieu d'utiliser explicitement « slide_item_ », et le reste de ce code serait plus dynamique

2
var id_number = parseInt(html_id.substr(11)); 
+3

Aucun exemple de code qui inclut 'parseInt' peut être complet sans les conseils de toujours utiliser' parseInt (string, 10) '(* ie * spécifier la base 10) car sinon, un zéro (comme dans "010") conduira le nombre à être interprété comme * octal *. – PleaseStand

+0

+1 parce que votre code donne le meilleur des trois réponses jusqu'à présent. http://jsperf.com/get-number-from-id – PleaseStand

2
var html_id = "slide_item_3"; 
var id_number = +html_id.split('_').pop(); 
+2

Pour clarifier le fonctionnement, '.split ('_')' transforme la chaîne en tableau, '.pop()' supprime et renvoie le dernier élément de ce tableau, et '+' au début, le résultat est une valeur numérique. – PleaseStand

0

si vous ne connaissez pas le préfixe ou un suffixe ... vous ne voulez que le numéro d'identification:

var id_number = html_id.replace(/\D+/,""); // Remove all non-digit characters 

se traduira par:

var html_id = "slide_item_3" // 3 
var html_id = "foo45bar"  // 45 
var html_id = "1-item-X"  // 1 
var html_id = "1-item-2"  // 12 (take care of such cases!) 
Questions connexes