TypeError: abc.getAttribute nie jest funkcją


Dla następującego kodu:
<span class="map-marker" data-lng="101.7113506794"></span>
<span class="map-marker" data-lng="101.6311097146"></span> var abc = $('.map-marker:first');
var xyz = abc.getAttribute("data-lat");
console.log(xyz);

Otrzymuję błąd:
TypeError: abc.getAttribute nie jest funkcją
. Co zrobiłem źle?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Może spróbuj tego:
var abc = $(".map-marker:first")[0];
var xyz = abc.getAttribute("data-lat");
console.log(xyz);

Albo to:
var abc = $(".map-marker:first");
var xyz = abc.data("lat");
console.log(xyz);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

abc
jest obiektem jQuery, więc nie ma funkcji
getAttribute ()
. posiada funkcję
attr ()
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Co zrobiłem źle?

czy rozważałeś

obiekt jQuery

tak jak

element

DOM. Obiekty JQuery nie mają metody
getAttribute
. Możesz użyć zamiast tego
.attr
http://api.jquery.com/attr/
lub
.data
http://api.jquery.com/data/
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wybierasz wiele elementów. Funkcja select zwraca tablicę, a tablica nie ma funkcji getAttribute. Możesz użyć pętli for do iteracji wyboru i uzyskania wartości atrybutów, lub możesz użyć indeksatora (np. [0]), aby uzyskać atrybut konkretnego obiektu.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Próbujesz uzyskać „data-lat”, ale zdefiniowano tylko „data-lng”.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Uważaj na dostęp do
this
w programie obsługi zdarzeń o zakresie dynamicznym.
Wywołanie funkcji na
this
, która nie istnieje, może wywołać
node.getAttribute nie jest funkcją
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Właśnie wpadłem w ten problem. Zgadzam się z @Felix Kling
Spróbuj poniżej:
<span class="map-marker" data-lng="101.7113506794"></span>
<span class="map-marker" data-lng="101.6311097146"></span> <script>
var abc = $('.map-marker:first');
var xyz = $(abc).attr("data-lng");
console.log(xyz);
</script>

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się