Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> JavaScript działa,, ale według wykładowcy jest błąd
ksenonlogin
post
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

Ostrzeżenie: (0%)
-----


Witam

Skrypt ma za zadanie podmieniać element <div></div> po wybraniu odpowiedniego elementu z listy (<option></option>).
Wszystko ładnie działa (przykład - konrad-lewczuk.pl), jednak według wykładowcy w JavaScript jest jakiś błąd.

Niżej zamieszczam java script:
  1. <script type="text/javascript">
  2. <!-- // <![CDATA[
  3. function akcja(zmienna) {
  4. var ile = document.getElementById('wybrana').options.length;
  5. for(var i=1; i<=ile; i++) {
  6. var jaka = 'iddiv'+i;
  7. if(jaka != zmienna) {
  8. document.getElementById(jaka).style.display = 'none';
  9. }
  10. else if(jaka == zmienna) {
  11. document.getElementById(jaka).style.display = 'block';
  12. }
  13. }
  14. }
  15. // ]]> -->




Niżej zamieszczam HTML:
  1. <form id="akcja" action="#">
  2. <p><select name="wybrana" id="wybrana" onchange="akcja(this.value);">
  3. <option value="iddiv1">Imię, Nazwisko</option>
  4. <option value="iddiv2">Tok nauki</option>
  5. <option value="iddiv3">Telefon</option>
  6. <option value="iddiv4">Email</option>
  7. <option value="iddiv5">Twoja zmienna</option>
  8. </select></p>
  9. </form>
  10.  
  11. <div id="iddiv1">Konrad Lewczuk</div>
  12. <div id="iddiv2">Informatyka, Nr albumu: 7611</div>
  13. <div id="iddiv3">Tel: 531447823</div>
  14. <div id="iddiv4">kontakt@konrad-lewczuk.pl</div>



Niżej zamieszczam CSS:
  1. #iddiv1 {
  2. display: block;
  3. }
  4. #iddiv2,#iddiv3,#iddiv4,#iddiv5 {
  5. display: none;
  6. }
Go to the top of the page
+Quote Post
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


jakiśquestionmark.gif to wykładowca nie wie jaki jest błąd??

ja tu za bardzo nie widzę błędu - mogę jedynie napisać drobne uwagi...

wszystko zależy co dokładnie miałeś zrobić - jeśli podmianę elementu drzewa DOM potraktować dosłownie to nic nie podmieniasz, po prostu ukrywasz pozostałe elementy a pokazujesz inny który de fakto tam był i jest...

następne ale to tylko szczegół i nie jest tutaj błędem, a jedynie jeśli ogólnie znasz strukturę HTML'a na którego piszesz funkcję a nie masz wpływu na jej poprawną strukturę to mogłeś sprawdzić, czy wyszukało Ci elementy o zadanym id by następne metody w razie braku danego obiektu nie spowodowały błędu...

var el;
el = document.getElementById(jaka);
el && el.style.display = 'none'; // lub if(el) el.style.display = 'none';


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@zegarek84: Zamiast masy IF-ów nie dających żadnej kontroli nad błędami lepiej skorzystać z fundamentalnych elementów JS - wyjątków:
[JAVASCRIPT] pobierz, plaintext
  1. try {
  2. document.getElementById(jaka).style.display = 'none';
  3. } catch (e) {
  4. // jakas reakcja na błąd
  5. }
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 01:24