-4

Ok。メインdiv内のdivのすべてのクラス名を取得したい。

div内のすべてのクラスのdivを取得するにはどうすればよいですか?

例えば:

<div id="themaindiv">
    <div class="div1"></div>
    <div class="div2"></div>
    <div class="div3"></div>
</div>

今、私は「themaindiv」という名前のdiv内にあるすべてのdivのすべてのクラス名を取得したいのですが、それを行う方法がわかりません。

update:次に、関数によって指定されたdiv('#theclassnames')にフックされたクラス名を表示します。

あるべき結果の例。

<div id="theclassnames">div1 div2 div3 div4</div>

前もって感謝します。

4

6 に答える 6

4

divの子孫であるそれぞれのクラス名の配列を取得することを意味すると仮定すると、各要素のクラス名を取得し、配列を取得するために#themaindiv使用できます。mapget

var arrayOfClassNames = $("#themaindiv div").map(function() {
    return this.className;
}).get();

これが実際のです。


いくつかのメモ:

  • 通常のCSSセレクターを使用する方が、他のいくつかの回答で行われている方法#themaindiv divを使用するよりも高速です。find

  • jQueryclassNameに渡してorメソッドを使用するよりも、ネイティブプロパティを使用する方が高速です。thisattrprop

  • ネイティブ配列ではなくjQueryのインスタンスになってしまうことを気にしない場合は、への呼び出しを省略できますget


アップデート

どうやらあなたは今、これらのクラス名を別のに表示したいと思っていますdiv。最も簡単な方法は、textメソッドを使用して配列を渡すことです。

$("#theclassnames").text(arrayOfClassNames);

これにより、のテキストコンテンツが#theclassnamesその配列の文字列表現に設定されます。あなたの場合、それは「div1、div2、div3」になります。ここで実際の動作を確認できます。

質問で示したとおりに正確に表示するにはjoin、スペースを含む配列を使用します。

$("#theclassnames").text(arrayOfClassNames.join(" ");

そして、ここに別の実用的な例があります。

于 2012-06-12T10:46:55.223 に答える
0
$("#themaindiv div").each(function(){
    alert($(this).attr("class"));
});
于 2012-06-12T10:47:18.203 に答える
0

どうですか:

$('#themaindiv div').each(function(){
    console.log($(this).attr('class'));
})
于 2012-06-12T10:47:26.550 に答える
0
var classes = [];

$('#themaindiv').find('div').each(function(){
    classes.push(this.className);
});

それらを表示するには、別のdivを追加できます。

   <div id=theclassnames></div>

そして、次のようなことをします

$('#theclassnames').html(classes.join(' '));

しかし、ほとんどのjsコーダーは単純にconsole.log(classes);

于 2012-06-12T10:47:43.380 に答える
0

デモ http://jsfiddle.net/Fb3bN/11/

コード

$('#themaindiv').find('div').each(function(){
    alert($(this).prop('class'));
});​
于 2012-06-12T10:47:58.313 に答える
0
var arrayOfClassNames = [];
$("#themaindiv div").attr('class', function() {
  arrayOfClassNames.push(this.className);
});
console.log(arrayOfClassNames);

デモ

于 2012-06-12T10:54:19.870 に答える