753 votes

Obtenir la liste de classe pour l’élément avec jQuery

Est-il un moyen de JQuery pour parcourir en boucle ou assigner à un tableau toutes les classes qui sont assignés à un élément ?

ex.

Je rechercherai pour une classe « spéciale » comme dans « dolor_spec » ci-dessus. Je sais que je pourrais utiliser hasClass(), mais le nom de la classe réelle ne peut-être pas nécessairement être connu à l’époque.

799voto

redsquare Points 47518

Vous pouvez utiliser `` pour vous obtenir un tableau des noms de classe.

Ensuite, vous pouvez parcourir et trouver celui que vous voulez.

jQuery ne pas vraiment vous aide ici...

342voto

Dreamr OKelly Points 542

Pourquoi a nul simplement indiqués.

170voto

Pehmolelu Points 1579

Vous pourriez également itérer au distance que vous pouvez accéder par :

Il a indexé tableau de toutes les classes de cet élément et contient également une propriété de longueur.

142voto

Will Points 1833

Voici un plugin jQuery qui va retourner un tableau de toutes les classes de la correspondance ou les élément(s) ont

;!(function ($) {
    $.fn.classes = function (callback) {
        var classes = [];
        $.each(this, function (i, v) {
            var splitClassName = v.className.split(/\s+/);
            for (var j in splitClassName) {
                var className = splitClassName[j];
                if (-1 === classes.indexOf(className)) {
                    classes.push(className);
                }
            }
        });
        if ('function' === typeof callback) {
            for (var i in classes) {
                callback(classes[i]);
            }
        }
        return classes;
    };
})(jQuery);

L'utiliser comme

$('div').classes();

Dans votre cas, les retours

["Lorem", "ipsum", "dolor_spec", "sit", "amet"]

Vous pouvez également passer d'une fonction à la méthode doit être appelée à chaque classe

$('div').classes(
    function(c) {
        // do something with each class
    }
);

Voici un jsFiddle j'ai mis en place pour démontrer et tester http://jsfiddle.net/GD8Qn/8/

Minifiés Javascript

;!function(e){e.fn.classes=function(t){var n=[];e.each(this,function(e,t){var r=t.className.split(/\s+/);for(var i in r){var s=r[i];if(-1===n.indexOf(s)){n.push(s)}}});if("function"===typeof t){for(var r in n){t(n[r])}}return n}}(jQuery);

17voto

Carlisle Points 91
var classList = $(element).attr('class').split(/\s+/);
$(classList).each(function(index){

     //do something

});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X