J’ai un div avec les classes suivantes:
form-group val-presence-text val-type-pos-int val-length-10 has-success has-feedback
Je veux obtenir le 10
du nom de classe val-length-10
. J’ai essayé diverses méthodes, mais aucune ne semble fonctionner pour un atsortingbut multi-classe dynamic tel que celui-ci. De plus, le nombre 10
peut être n’importe quel nombre entier positif et la classe peut être située n’importe où dans le groupe de classes.
Des idées?
Vous pouvez utiliser ceci:
var val_length = $('div').attr("class").match(/val-length-(\d+)/)[1];
Une solution possible:
var n = (this.className.match(/val-length-(\d+)/) || []).pop();
Ou dans le contexte:
$('[class*="val-length-"]').each(function() { var n = (this.className.match(/val-length-(\d+)/) || []).pop(); console.log(n); });
En supposant que c’est ‘val-length’ qui ne change jamais et que seul l’entier se trouve à la fin, vous devriez pouvoir le faire:
//get an array of classes on a specific element var classList =$('#elementId').attr('class').split(/\s+/); //loop through them all $.each( classList, function(index, item){ //check if any of those classes begin with val-length- if (item.indexOf('val-length' === 0) { console.log(item.subssortingng(11)) } });
Essaye ça…
$("div[class*=val-length-]").each(function() { var s = this.className; var length = 0; $(s.split(" ")).each(function() { if (this.search("val-length-") === 0) { length = this.substr(11); } }); console.log(length); });
Il trouvera la division appropriée et en tirera la valeur pour vous.