2016-05-26 10 views
0

要素のクラス名を取得するには、thisのリファレンスを入手してください。 私はcompare-boxクラスにオブジェクトのクラス名を付加したいHTML要素にAddCompareOfferInCompareBox機能でjqueryの 'this'リファレンスのクラス名を取得する方法

<input type="checkbox" class="NotSelected @placeholderString" onchange="SaveCompairedOffers(this);"> 

jQueryのコード

function SaveCompairedOffers(obj) { 
    //Hiding irrelevant code from here 

    AddCompareOfferInCompareBox(); 
} 

を次のようしています。

function AddCompareOfferInCompareBox() 
{ 
    var innerHtml = ""; 
    $('.SelectedOffer').each(function() 
     //append class name of current passed object to this div 
     innerHtml = innerHtml + '<div class="compare-box"></div>'; 
    }); 
    $(".AddCompareOfferByMe").html(innerHtml); 
} 

どうすればいいですか?

+0

このクラス名は?私は '@ placeholderString'と思いますか? – Satpal

+0

@Satpalはい正確に –

+0

$(this).attr( "class")はNotSelectedを返します@placeholderString – sarath

答えて

1

data-*という接頭辞付き属性を使用して任意のデータを格納することをお勧めします。

<input type="checkbox" class="NotSelected" data-str="@placeholderString" onchange="SaveCompairedOffers(this);"> 

これは、要素に設定HTMLElement.datasetプロパティは、すべてのカスタムデータ属性に、読み出しと書き込みの両方のモードで、アクセスを許可します

(データ - *)HTMLElement.datasetプロパティを使用して取り出すことができます。 DOMStringのマップで、各カスタムデータ属性のエントリです。

function SaveCompairedOffers(obj){ 
    var str = obj.dataset.str; 
    AddCompareOfferInCompareBox(str); 
} 

function AddCompareOfferInCompareBox(str) {  
    $('.SelectedOffer').each(function() 
     $('<div></div>', { 
      "class" : "compare-box " + str 
     }).appentTo(".AddCompareOfferByMe");   
    }); 
} 

しかしそれでも、クラス名を使用したい場合は、Element.classNameプロパティを使用することができます。

classNameは、指定された要素のclass属性の値を取得および設定します。

使い方

function SaveCompairedOffers(obj){ 
    var str = obj.className; 
} 
1

これまで最も簡単な方法は、バニラのjavascriptです。あなたがthisを参照したいあなたの関数では、変数に自分のクラスを割り当てるには、次のコードを追加します。あなたはすべてのクラスの配列を取得したい

var classes = this.className 

場合は、分割を使用することによって、これを達成することができます( )関数は、次のようになります。

var classes = this.className.split(' ') 
関連する問題