2016-05-26 7 views
0

bekommen Ich möchte wissen, wie ich den Klassennamen eines Elements von this Referenz bekommen kann. Ich habe folgende HTML-ElementWie Klassenname von 'dieser' Verweis in jquery

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

jQuery-Code

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

    AddCompareOfferInCompareBox(); 
} 

In der AddCompareOfferInCompareBox Funktion I Klassennamen des Objekts auf compare-box Klasse angehängt werden soll.

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); 
} 

Wie kann ich das tun?

+0

welcher Klassenname? Ich denke '@ placeholderString'? – Satpal

+0

@Satpal ja genau –

+0

$ (this) .attr ("Klasse") gibt NotSelected @ placeholderString – sarath

Antwort

1

Ich würde Ihnen empfehlen, data-* Präfix-Attribut zu verwenden, um beliebige Daten zu speichern.

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

Dies kann geholt werden unter Verwendung von HTMLElement.dataset Eigenschaft

Die HTMLElement.dataset Eigenschaftszugriff ermöglicht, sowohl im Lese- und Schreibmodus auf alle benutzerdefinierten Datenattribute (Daten- *), die auf dem Element . Es ist eine Zuordnung von DOMString, ein Eintrag für jedes benutzerdefinierte Datenattribut.

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

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

Allerdings, wenn Sie immer noch Klassennamen verwenden möchten, dann können Element.className Eigenschaft verwendet werden.

Klassenname ruft den Wert des Klassenattributs des angegebenen Elements ab und legt diesen fest.

Nutzung

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

Der einfachste Weg dazu ist Vanille Javascript. In Ihrer Funktion, wo Sie verweisen this möchten, fügen Sie den folgenden Code, um Ihre Klassen zu einer Variablen zuzuweisen:

var classes = this.className 

Wenn Sie ein Array aller Klassen erhalten möchten, können Sie dies mithilfe der Split erreichen können () Funktion wie folgt:

var classes = this.className.split(' ')