Mam tutaj listę
<ul id="demo2" data-name="demo2">
<li data-value="here">here</li>
<li data-value="are">are</li>
<li data-value="some...">some</li>
<!-- notice that this tag is setting a different value :) -->
<li data-value="initial">initial</li>
<li data-value="tags">tags</li>
</ul>
Gdzie każdy element li ma niestandardowy atrybut danych. Jak na JQuery uzyskałby wszystkie wartości każdego elementu li, który ma atrybut wartości danych? Chcę uzyskać ich wartość.
ale mój kod wydaje się nie działać
$("#view-tags").click(function(){
$("li[data-value]").each(function(){
alert($(this).data("value"));
})
});
Cały kod na jsfiddle: http://jsfiddle.net/Zn3JA/
Odpowiedzi:
8 dla odpowiedzi № 1Jesteś bardzo blisko. Możesz użyć jQuery .data()
metoda odczytu atrybutów rozpoczynających się od data-
. W twoim przypadku .data("value")
ponieważ twoim atrybutem jest data-value="some"
.
Powinno to zrobić:
$("li[data-value]").each(function(){
alert($(this).data("value"));
});
Oto także działające skrzypce: http://jsfiddle.net/nuphP/
3 dla odpowiedzi № 2
$(this).attr("data-value")
powinien również działać.
1 dla odpowiedzi nr 3
W swoim przypadku możesz użyć:
jQuery(this).data("value");
w celu odzyskania wartości.
1 dla odpowiedzi nr 4
$(this)
odnosi się do prądu li
element, dlatego element zostanie ostrzeżony.
Możesz wypróbować to, co sugerowali inni, tj $(this).data("value")
0 dla odpowiedzi № 5
$("#view-tags").click(function(){
$("li[data-value]").each(function(){
var value = $(this).attr("data-value");
alert(value);
})
}); // this work normally
Pobiera wartość atrybutu i przechowuje wartość zmiennej
var value = $ (this) .attr ("date value");
Po tym ostrzeżeniu wartość zmiennej
alert (value);