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

getElementsByClassName nie działa w google extension

VPS Starter Arubacloud
0 głosów
155 wizyt
pytanie zadane 11 sierpnia 2018 w JavaScript przez Piotr Almond Nowicjusz (190 p.)

Witam,

Potrzebuję stworzyć rozszeżenie do przeglądarki, które będzie zmieniało tag w podrzędnym divie. Wszystko wygląda dobrze gdy użyję metody getElementById:

document.getElementById('widget-html').innerHTML = document.getElementById('widget-html').innerHTML.replace(/div/g, "span");

ale gdy to samo probuje zrobić dla getElementsByClassName rozszeżenie nie chce działać

document.getElementsByClassName('widget1').innerHTML = document.getElementsByClassName('widget1').innerHTML.replace(/div/g, "img");

Czy wie ktoś jaka może być tego przyczyna?

Pozdrawiam

1 odpowiedź

0 głosów
odpowiedź 11 sierpnia 2018 przez lateM Pasjonat (17,660 p.)

Masz na stronie jeden element o klasie widget1, czy więcej? getElementsByClassName pobierze wszystkie elementy o podanej klasie i zwróci obiekt tablico-podobny. getElementById pobiera Ci referencję do danego obiektu DOM, więc wszystko działa, tutaj dostejesz "tablicę" / "kolekcję" i musisz się odnieść do danej pozycji.

komentarz 11 sierpnia 2018 przez Piotr Almond Nowicjusz (190 p.)
Cześć,

Mam wiele obiektów o tej klasie, czy mogę się odnieść do wszystkich?

Pozdr
komentarz 11 sierpnia 2018 przez lateM Pasjonat (17,660 p.)
Tak, potrzebujesz jakiejś pętli po tym zbiorze obiektów. Podstaw sobie pod zmienną zwracany przez getElementsByClassName obiekt i wyrzuć go w konsoli poprzez "console.log()" i zobacz jak to wygląda. Możesz się po nim poruszać podobnie do normalnej tablicy, jednak wiele metod dostępnych dla zwykłej tablicy nie będzie tutaj działać.
komentarz 11 sierpnia 2018 przez Piotr Almond Nowicjusz (190 p.)

@MateuszB, spróbowałem poniższe i działa

var images = document.getElementsByClassName('widget1');
for (var i = 0, l = images.length; i < l; i++) {
  images[i].innerHTML = images[i].innerHTML.replace(/a/g, "img");
}

 

komentarz 11 sierpnia 2018 przez lateM Pasjonat (17,660 p.)
O czymś takim myślałem

Podobne pytania

0 głosów
1 odpowiedź 274 wizyt
pytanie zadane 14 grudnia 2022 w JavaScript przez Dawidziu Bywalec (2,630 p.)
–1 głos
1 odpowiedź 120 wizyt
0 głosów
0 odpowiedzi 121 wizyt
pytanie zadane 29 lipca 2016 w PHP przez GaCeL Dyskutant (7,500 p.)

92,770 zapytań

141,695 odpowiedzi

320,518 komentarzy

62,107 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...