2016-03-20 13 views
1
$('.free-gifts').on("click",".free-gift-item", function() { 

    console.log(this.val()); 

}); 

Dies ist mein Code und das zurückgegeben wird, wenn ich nur 'this' in console.log schreiben .:this.val arbeiten nicht in JQuery

<img class="free-gift-item" value="Vaucet1" src="//cdn.shopify.com/s/files/1/1158/4752/t/2/assets/Vaucet1.jpg?11031098756291991926"> 

Vielleicht funktioniert .value mit nur $. Welche Logik sollte dann verwendet werden?

+0

Sie verwenden müssen: '$ (this) .attr ('value');' –

+0

Aber wenn ich dies tun, es sagt $ das ist nicht definiert. –

+0

Bitte posten Sie dies als Antwort :) Es funktionierte tatsächlich für mich. Ich benutzte $ this.attr, aber stattdessen musste ich $ (this) .attr verwenden. bitte erklären Sie ein wenig in Ihrer Antwort, damit es anderen Leuten auch hilft :) –

Antwort

1

Da Bilder keine Wertattribute (ungültiges HTML) haben können, sollten Sie stattdessen data attributes verwenden, um einem Element beliebige Daten zuzuweisen.

<img class="free-gift-item" data-value="Vaucet1" src="//cdn.shopify.com/s/files/1/1158/4752/t/2/assets/Vaucet1.jpg?11031098756291991926"> 

dann den Wert mit .data() Methode jQuery abrufen:

$('.free-gifts').on("click",".free-gift-item", function() { 
    console.log($(this).data('value')); 
}); 
+0

Vielen Dank dafür :) –