2

前文:私はイタリア語です。英語が下手でごめんなさい。

だからこれが質問です:

次のようなHTMLオブジェクトを検討します。

<div id="myDiv" class="c1 c2 c3 c4 c5"></div>

「div」要素の「class」属性から、jqueryを使用して文字列の配列を取得するにはどうすればよいですか?

例:

var a = $('#myDiv').getClassArray(); //Not working,just an example

return a;  //[c1,c2,c3,c4,c5]

「class」属性を読み取ってから文字列を分割できると思いましたが、冗長すぎるようで、もっと短くてエレガントなメソッドがあるのではないかと思いました。

4

3 に答える 3

8

文字列から配列を取得する#には、IDセレクターが必要で、 split()を使用します。

ライブデモ

var a = $('#myDiv').attr('class').split(' ');

forループのjQueryjQuery.each()を使用して、配列を反復処理できます。

var a = $('#myDiv').attr('class').split(' ');

$.each(a, function(index, item){
    alert(item);
});​
于 2013-01-04T11:26:19.587 に答える
3

新しい標準classListプロパティを使用すると、DOM要素($('#myDiv')[0].classListjQueryなど)に簡単にアクセスできますが、普遍的に実装されているわけではありません。この標準のドキュメントについてはこちらを、現在のブラウザサポートについてはこちらをご覧ください。

シムなどの機能を提供することは、バグ7378でjQueryに提案されましたが、拒否されました。

ただし、おそらくhttps://github.com/eligrey/classList.jsなどのシムを介してそのようなサポートを受けることができます

更新:シムを使用したデモはhttp://jsfiddle.net/brettz9/WWs5B/1/にあります

于 2013-01-04T11:37:03.163 に答える
2

これを試してみませんか:http://jsfiddle.net/egZ2z/

var cls = $('#myDiv').attr('class');
var n = cls.split(' ')
alert(n);
于 2013-01-04T11:32:19.040 に答える