• 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 2 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 2 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ź 2 dni temu przez ScriptyChris Mędrzec (168,320 p.)
wybrane 2 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
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

85,707 zapytań

134,502 odpowiedzi

298,523 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.

...