• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dostanie sie do atrybutów

+1 głos
55 wizyt
pytanie zadane 3 dni temu w JavaScript przez Olivier Mazur Początkujący (260 p.)
Witam mam taki kod:
for (var i = 0; i < self.placeholders.length; i++) {
      $placeholder = self.placeholders[i].$item;
      console.log($placeholder)
}

console wyswietla mi cos takiego:

Jak się dostać teraz do tych wszystkich divow? Bo chcialbym powyciagac z nich atrybuty za pomocą dataset

1
komentarz 3 dni temu przez ScriptyChris Mędrzec (168,320 p.)

Czym jest zmienna self? To jakaś referencja do window / this? Co się pokazuje, gdy w pętli wylogujesz $placeholder.length?

komentarz 3 dni temu przez Olivier Mazur Początkujący (260 p.)

self odnosi się do obiektu to cos takiego jak this w klasach. Jest to bardzo stary kod i cięzko mi go zrozumiec do konca. Po wykonsolowaniu mam cos takiego:

1 odpowiedź

+5 głosów
odpowiedź 3 dni temu przez ScriptyChris Mędrzec (168,320 p.)
wybrane 3 dni temu przez Olivier Mazur
 
Najlepsza

Sądząc po długości listy, która wynosi 1, to do jedynego elementu możesz się dostać po prostu podając indeks 0:

console.log('$placeholder item:', $placeholder[0])

Jeśli chciałbyś sobie te elementy wyciągnąć do tablicy poza jQuery, to np. w ten sposób:

const elements = [...self.placeholders].map(element => element.$item[0]);

 

1
komentarz 1 dzień temu przez ScriptyChris Mędrzec (168,320 p.)

Użycie $( .. ) pozwala m.in owinąć zwykłą kolekcję elementów w jQuery-owy odpowiednik, dzięki czemu można na tym używać metod z jQuery. Biblioteka posługuje się swoim "typem" dla elementów w DOM, więc jeśli operujesz na natywnym elemencie/kolekcji DOM, to najpierw musisz owinąć to w kolekcję/typ jQuery, żeby móc na tym dalej działać poprzez API biblioteki; chociaż nie wnikałem, czy są jakieś hacki, aby używać metod jQuery bez owijania danych wejściowych (a'la Function.prototype.call).

komentarz 1 dzień temu przez Olivier Mazur Początkujący (260 p.)
dziękuję jeszcze raz
komentarz 1 dzień temu przez ScriptyChris Mędrzec (168,320 p.)

P.S. Wg mnie warto jest stosować konwencję prefixowania nazw zmiennych znakiem dolara, żeby móc na pierwszy rzut oka odróżnić zmienną o wspomnianym typie jQuery od natywnego elementu/kolekcji z DOM. Więc nazwałbym anchor ⇒ $anchor oraz self.placeholders ⇒ self.$placeholders (jeśli faktycznie to jest kolekcja elementów jQuery, a nie natywnych DOM).

komentarz 1 dzień temu przez Olivier Mazur Początkujący (260 p.)

Jeszcze mam takie pytanie, zrobilem:

console.log($(self.placeholders))
 console.log(self.placeholders)

https://zapodaj.net/92c9c4d282855.png.html

Rozumiem, ze init to nazwa kolekcji jquery, a ten drugi console to zwykla tablica?

1
komentarz 1 dzień temu przez ScriptyChris Mędrzec (168,320 p.)
Na to wygląda, sądząc po prototypach obu.

Podobne pytania

0 głosów
4 odpowiedzi 243 wizyt
pytanie zadane 16 lutego 2019 w Rozwój zawodowy, nauka, szkoła, praca przez klaudiusz20046 Nowicjusz (160 p.)
0 głosów
3 odpowiedzi 185 wizyt
0 głosów
1 odpowiedź 95 wizyt
pytanie zadane 4 marca 2017 w Urządzenia mobilne przez Maciej Kaniewski Nowicjusz (120 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

85,708 zapytań

134,503 odpowiedzi

298,528 komentarzy

56,629 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...