例えば:
<div class="home current">home</div>
を使用する$(this).attr("class")
と、単純に「ホーム電流」が返されます。「ホーム」属性のみを取得したい。どうすればこれを達成できますか?
例えば:
<div class="home current">home</div>
を使用する$(this).attr("class")
と、単純に「ホーム電流」が返されます。「ホーム」属性のみを取得したい。どうすればこれを達成できますか?
クラス名がわかっていて、要素にそれがあるかどうかを確認したい場合は、次を使用できます.hasClass()
// will return true if the element has that class applied to it
$(elem).hasClass('home');
一方、各クラスを要素に個別に適用する場合は、スペースで分割して反復できます。
var classes = $(elem).attr('class').split(' ');
for(var i=0; i<classes.length; i++) {
classes[i]; // each class name
}
このclass
属性は、要素に割り当てられた CSS クラスのスペース区切りのリストを返します。これを配列に変換するsplit
には、文字列のメソッドを使用します。最初のものを取得するには、次のように [0] インデクサーを使用します。
var firstClass = $(this).attr('class').split(' ')[0]
var allClass= $(this).attr("class");
var class = allClass.replace("current", "");
これは、追加のクラスとして「現在」しかない場合に機能します
クラス リストをプルする必要がある特定の理由はありますか。探しているクラスが分かっていて、オブジェクトにクラス ホームがあるかどうかを確認する必要がある場合は、次のようにします。
$(this).hasClass("home");
それ以外の場合は、結果を分割して、必要なクラスを確認することができます。
var classAttr = $(this).attr("class");
var classes = classAttr.split(" ");
要素のプライマリ クラスが必要なようです。
var primaryClass= $(this).attr('class').split(' ')[0].
この行は、使用中にクラスが適用されないと例外が発生する可能性があることに注意してください。