Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Petla for +
Mike122
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Witam napisałem skrypt który pobiera wartości z pola option następnie przypisuje im liczbę n która w pętli for zwiększa się.. Jednak nie do końca o to chodzi.. Przedstawienie to na przykładach:

Mój Skrypt
  1. var x = document.getElementsByTagName("option");
  2. for (var n = 0; n < x.length; n++){
  3. var s = document.getElementsByTagName("option")[n];
  4. var y = s.childNodes[0];
  5. var server = (y.nodeValue);
  6. var sum = n+1;
  7. var speed = server.replace(server, sum +" - "+server);
  8. document.getElementsByTagName("option")[n].innerHTML = speed;
  9. }



  1. //Wyglądają formularze bez użycia skryptu...
  2. //1 formualrz
  3. <form action="...">
  4. <select name="nazwa">
  5. <option>12</option>
  6. <option>13</option>
  7. </select>
  8. </form>
  9.  
  10. //2 formualrz
  11. <form action="...">
  12. <select name="nazwa">
  13. <option>12</option>
  14. <option>13</option>
  15. </select>
  16. </form>


  1. //Po użyciu tego skryptu wyglądają tak:
  2. //1 formualrz
  3. <form action="...">
  4. <select name="nazwa">
  5. <option>1 - 12</option>
  6. <option>2 - 13</option>
  7. </select>
  8. </form>
  9. //2 formualrz
  10. <form action="...">
  11. <select name="nazwa">
  12. <option>3 - 12</option>
  13. <option>4 - 13</option>
  14. </select>
  15. </form>


  1. //Chciałbym by wyglądało tak:
  2. //1 formualrz
  3. <form action="...">
  4. <select name="nazwa">
  5. <option>1 - 12</option>
  6. <option>2 - 13</option>
  7. </select>
  8. </form>
  9. //2 formualrz
  10. <form action="...">
  11. <select name="nazwa">
  12. <option>1 - 12</option>
  13. <option>2 - 13</option>
  14. </select>
  15. </form>


Bardzo proszę i pomoc.. Próbowałem dać w pętli for następne for jednak nie działało...

Ten post edytował Mike122 4.12.2009, 15:25:43


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
r4xz
post
Post #2





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


to może sprawdzać czy np. name rodzica jest inne, albo samego elementu (co pozwoli wykryć, że jest to inny select) i zmieniać wartość n na 0/1 (zależy gdzie wkleić warunek)?


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





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

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


Cytat(Mike122 @ 4.12.2009, 15:23:49 ) *
Próbowałem dać w pętli for następne for jednak nie działało...

pętlę zewnętrzną daj po select


--------------------
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
Mike122
post
Post #4





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Cytat(zegarek84 @ 4.12.2009, 16:13:25 ) *
pętlę zewnętrzną daj po select

Możesz troszkę jaśniej?


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
zegarek84
post
Post #5





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

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


nie sprawdzałem - popraw błędy jeśli takie są ale to ma być w ten deseń - ps - nie trzeba co chwila przeszukiwać dokumentu - wystarczy raz i zapamiętać to do jakiejś zmiennej - js jest dosyć mocno obiektowy winksmiley.jpg

[JAVASCRIPT] pobierz, plaintext
  1. var y = document.getElementsByTagName('select'), y_length=y.length,
  2. o = null, o_length = null,
  3. m, n,s, z, server, sum, speed;
  4. for (m = 0; m < y_length; ++m){
  5. o = y[m].getElementsByTagName('option');
  6. o_length = o.length;
  7. for (n = 0; n < o_length; ++n){
  8. s = o[n];
  9. z = s.childNodes[0];
  10. server = (z.nodeValue);
  11. sum = n+1;
  12. speed = server.replace(server, sum +" - "+server);
  13. o[n].innerHTML = speed;
  14. }
  15. }
[JAVASCRIPT] pobierz, plaintext

PS. optymalniej było by jeszcze w ten deseń (też nie sprawdzałem ;p)
[JAVASCRIPT] pobierz, plaintext
  1. var y = document.getElementsByTagName('select'), y_length=y.length,
  2. o = null, o_length = null, o_in = null,
  3. m, n;
  4. for (m = 0; m < y_length; ++m){
  5. o = y[m].getElementsByTagName('option');
  6. o_length = o.length;
  7. for (n = 0; n < o_length; ++n){
  8. o_in = o[n].firstChild;
  9. o_in.nodeValue = [n+1, ' - ', o_in.nodeValue].join('');
  10. }
  11. }
[JAVASCRIPT] pobierz, plaintext


Ten post edytował zegarek84 4.12.2009, 18:03:11


--------------------
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

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: 20.08.2025 - 08:37