6

私はいくつかの jQuery と HTML を継承しており、HTML 要素のいずれかに任意の値のクラス名があるかどうかを確認する必要があります。いくつかのスレッドを読んでグーグル検索しましたが、役立つものは何も見つかりません。したがって、疑似コードで私が望むのは次のとおりです。

Loop through all HTML elements

If any of them have any class at all:
    Get their class name as a string

それが理にかなっていることを願っています!

4

7 に答える 7

14

試す:

$('*').each(function() {
    if ($(this).hasClass()) {
        var class_name = $(this).attr('class');
        // do something
    }
});

なぜこれをやりたいのか、私にはわかりません。非常に非効率的です

于 2013-01-31T17:23:48.910 に答える
6

次のようなものを使用できます。

$("[class]").each(function(){
   var className = $(this).attr("class");
})

属性セレクターがあります

デモ: http: //jsfiddle.net/L5WAV/1/ (コンソールの結果を参照-2つのdivが見つかるはずです)

于 2013-01-31T17:28:51.630 に答える
2

クラスを持つすべての要素を取得するには、次を使用できます$('*[class]')

$('*[class]').each(function(){
    // do what you want
});

で簡単に数えることもできます$('*[class]').length

于 2013-01-31T17:30:57.800 に答える
1
var classObj = {};

$('*').each(function(){
    var cNames = this.className.split(' ');
    for(var i=0, l=cNames.length; i<l; i+=1){
        classObj[cNames[i]] = true;
    }
});

これにより、ドキュメントに表示されるすべてのクラスをプロパティとして持つObject(classObj)が得られるため、ドキュメントに同じクラスの要素がある場合、クラス名が複数回表示されることはありません。しかし、私は実際にはこれを行わないか、これでのユースケースを見ることはありません。

于 2013-01-31T17:27:36.883 に答える
0

直接の質問ではありませんが、私はそれが必要だったので、将来のユーザーのためにここに行きます.

要素に特定のクラスがあるかどうを調べたい場合は、次の関数を使用できます。

function find_any_element(className) {
    var found = false;
    $('*').each(function() {
        if ($(this).hasClass(className)) {
            var class_name = $(this).attr('class');
            alert("There is an element with this class: " + class_name);
            found = true;
        }
    });
    if(!found) {
        alert("No element with className '" + className + "' found.");
    }
}
于 2015-11-10T22:10:45.437 に答える