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

Zmiana wartości diva JS

Object Storage Arubacloud
0 głosów
571 wizyt
pytanie zadane 27 lutego 2019 w JavaScript przez zerakot Obywatel (1,870 p.)
Witam,

Czy mogę zmienić zawartość diva nie używając metody GetElementById? Może inny ma ktoś pomysł, bo mam program, gdzie algorytm robi mi divy o tym samym id, a chcę zrobić przycisk, po naciśnięciu którego zawartość diva, w którym był naciśnięty się zmieniła, a nie wszystkich.

1 odpowiedź

0 głosów
odpowiedź 27 lutego 2019 przez niezalogowany

Zacząłbym od próby zmiany tego algorytmu. Id to unikalny identyfikator i jak sama nazwa wskazuje, nie powinien się powtarzać.

Ale, odpowiadając na pytanie - tak, możesz znaleźć referencję do tego diva innymi sposobami. Na przykład korzystając z querySelector + nth-child

komentarz 27 lutego 2019 przez zerakot Obywatel (1,870 p.)
Mam class z przyzwyczajenia napisałem id. Czy ta metoda działa też na klasy?
komentarz 27 lutego 2019 przez niezalogowany
Być może w ogóle źle podchodzić do tematu. Po kliknięciu w przycisk masz bardzo łatwy dostęp do referencji tego przycisku (poprzez event.currentTarget). Wtedy wystarczy tylko pobrać parentElement?
komentarz 27 lutego 2019 przez zerakot Obywatel (1,870 p.)
Nie wiem co pan pisze, ale mi chodzi o zmianę tylko diva, w którym jest przycisk nie patrząc na id
komentarz 27 lutego 2019 przez niezalogowany
Jasne. Pokaż jakiś kawałek kodu
komentarz 27 lutego 2019 przez zerakot Obywatel (1,870 p.)

Tu ten "algorytm" jest (PHP)

<?php 
			if(isset($_SESSION['wyszukane']))
			{
				if($wynik = $mysqli->query($query)) 
				{
					while($row = $wynik->fetch_assoc()) 
					echo '<div class="produktwyszukany">'.
					"<div class='zdjecie'>"."<img src='".$row['zdjecie']."'/>"."</div>".
					"<div class='nazwa'>".$row['nazwa']."</div>"."<br />"."<br />".
					"<div class='cena'>".$row['cena'].
					"<div class='zl'>zł</div>"."</div>".
					"<center>"."<a name='zobacz' onClick=''>ZOBACZ</a>"."</center>".
					"</div>";				
					;
				}
			}
				?>

 

komentarz 27 lutego 2019 przez niezalogowany
<ul>
  <li>
    <button onclick="this.parentElement.innerText = 'tekst 1'">Przycisk 1</button>
  </li>
  <li>
    <button onclick="this.parentElement.innerText = 'tekst 2'">Przycisk 2</button>
  </li>
</ul>

Kod powyżej jest niezgody z dobrymi praktykami i docelowo nie powinieneś go używać. Na tym etapie jednak dość dobrze on obrazuje, o co chodzi.

komentarz 27 lutego 2019 przez niezalogowany

(Jeśli chcesz to zrobić poprawnie, skorzystaj z event delegation)

komentarz 27 lutego 2019 przez zerakot Obywatel (1,870 p.)
Jak wkleję tego buttona to struktura strony mi się psuje da się jakoś temu zaradzić?
komentarz 27 lutego 2019 przez niezalogowany
To tylko przykład, jak zmienić zawartość rodzica. Spórbuj napisać kod na jego podstawie
komentarz 27 lutego 2019 przez zerakot Obywatel (1,870 p.)
Ok, spróbuję.
komentarz 27 lutego 2019 przez zerakot Obywatel (1,870 p.)

Czy coś takiego ma prawo działać, jak nie to co do zmiany?

"<button onclick='this.parentElement.innerHTML = '".$row['opis']."'>ZOBACZ</button>"

 

komentarz 27 lutego 2019 przez niezalogowany
Sprawdź, czy działa
komentarz 27 lutego 2019 przez zerakot Obywatel (1,870 p.)
Sprawdziłem i nie. Co mogę zmienić?
komentarz 27 lutego 2019 przez niezalogowany
Konsola wyświetla jakieś błędy? czym się objawia "nie działa"?
komentarz 27 lutego 2019 przez zerakot Obywatel (1,870 p.)

Taki błąd pokazuje:

SyntaxError: expected expression, got '}'

Podobne pytania

+1 głos
2 odpowiedzi 4,005 wizyt
pytanie zadane 27 sierpnia 2015 w JavaScript przez krispello Obywatel (1,440 p.)
0 głosów
1 odpowiedź 177 wizyt
pytanie zadane 22 sierpnia 2015 w JavaScript przez makoso Mądrala (7,380 p.)
0 głosów
5 odpowiedzi 1,994 wizyt
pytanie zadane 13 sierpnia 2015 w JavaScript przez Lukasz Bywalec (2,320 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...