jQuery – Obtenir une liste de valeurs d’un atsortingbut à partir d’éléments d’une classe

J’ai une classe .object qui a un atsortingbut appelé level . Je veux obtenir une liste de toutes les différentes valeurs de level sur la page afin que je puisse sélectionner la plus haute.

Si je fais quelque chose comme:

 $(".object").attr("level") 

… cela va-t-il me donner une liste de valeurs qui sont les valeurs de l’atsortingbut level? Je pense que non, mais comment fais-tu quelque chose comme ça?

Note: Je ne veux pas sélectionner un object HTML pour la manipulation car cela est plus courant, mais je veux plutôt sélectionner des valeurs de l’atsortingbut.

EDIT: Pour obtenir le plus haut “niveau”, je l’ai fait, mais cela ne semble pas fonctionner. Je vais essayer l’autre méthode suggérée maintenant.

 var highLevel=0; $.each(".object[level]", function(i, value) { if (value>highLevel) { highLevel=value; } }); alert(highLevel); 

$(".object").attr("level") renverra simplement l’atsortingbut du premier élément .object .

Cela vous donnera un tableau de tous les level :

 var list = $(".object").map(function(){return $(this).attr("level");}).get(); 

Première partie de la question, obtenir les valeurs d’atsortingbut dans un tableau. Voir cette question

jQuery obtient les atsortingbuts source img de la liste et les insère dans un tableau

Tu dirais

 var levelArray = $('.object').map( function() { return $(this).attr('level'); }).get(); 

Deuxième partie de la question, vous pouvez utiliser cette technique pour obtenir la plus grande valeur

 var maxValue = Math.max.apply( Math, levelArray ); 
  

Je suppose un balisage comme celui-ci:

 
placeholder
placeholder
placeholder
placeholder
placeholder
placeholder
placeholder

Pour mon code, je reçois “1000” alerté.

Voici une autre solution, combinant plusieurs autres réponses de harpo, lomaxx et Kobi:

 jQuery(document).ready(function(){ var list = $(".object[level]").map(function(){ return parseInt($(this).attr("level"), 10); }).get(); var max = Math.max.apply( Math, list ); alert(max); }); 

le sélecteur

 $(".object[level]") 

vous donnera tous les éléments dom avec un object classe et un level atsortingbut.

Ensuite, vous pouvez simplement utiliser la méthode .each () pour parcourir les éléments pour obtenir la valeur la plus élevée

Vous pouvez étendre les fonctionnalités de Jquery et append votre propre implémentation «attrs».

Ajoutez les lignes de code suivantes à votre fichier JavaScript:

 jQuery.fn.extend({ attrs: function (atsortingbuteName) { var results = []; $.each(this, function (i, item) { results.push(item.getAtsortingbute(atsortingbuteName)); }); return results; } }); 

Maintenant, vous pouvez obtenir la liste des valeurs de niveau en appelant:

 $(".object").attrs("level")