Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Zastapienie nextElementSibling
Star
post 27.08.2016, 13:03:17
Post #1





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


Czesc

mam taka tabelke i taki kod JS:

  1. <tr>
  2. <th>Y</th>
  3. <th>Name</th>
  4. <th>Age</th>
  5. <th>City</th>
  6. </tr>
  7. <tr>
  8. <td><input type="submit" value="Check" class="check" onclick="checkCity(this);"></td>
  9. <td>A</td>
  10. <td>B</td>
  11. <td>C</td>
  12. </tr>
  13. <tr>
  14. <td><input type="submit" value="Check" class="check" onclick="checkCity(this);"></td>
  15. <td>D</td>
  16. <td>E</td>
  17. <td>F</td>
  18. </tr>
  19. <tr>
  20. <td><input type="submit" value="Check" class="check" onclick="checkCity(this);"></td>
  21. <td>G</td>
  22. <td>H</td>
  23. <td>I</td>
  24. </tr>
  25.  
  26. function checkCity(element)
  27. {
  28. var parent = element.parentNode;
  29. var city = parent.nextElementSibling.nextElementSibling.nextElementSibling.innerHTML;
  30.  
  31. alert(city);
  32. }


no i wszystko dobrze sie alertuje, tak jak trzeba.Tylko chcialbym wiedziec czy daloby rade jakos to skrocic ? no bo zalozny ,ze kolumna City miala by przed soba wiecej kolumn, wtedy musialbym wrzucac kolejne funkcje nextElementSibling,a to wygladaloby kiepsko. Tak wiec czy jest jakies lepsze rozwiazanie, aby sie do tej kolumny City dobrac ? Zaznacze ze bez JQUERY, to istotne.

Pozdrawiam

Ten post edytował Star 27.08.2016, 13:04:31
Go to the top of the page
+Quote Post
trueblue
post 27.08.2016, 13:37:17
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


getElementsByTagName i ostatni z kolekcji, albo querySelector


--------------------
Go to the top of the page
+Quote Post
by_ikar
post 27.08.2016, 15:12:38
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Kod
function checkCity(element) {
    alert(element.parentElement.parentElement.lastElementChild.innerHTML);
}
Go to the top of the page
+Quote Post
Star
post 27.08.2016, 15:25:33
Post #4





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


dzieki ,pomoglo smile.gif

a tak z czystej ciekawosci, gdyby element City nie byl ostatni na liscie tylko np 3 od konca, a wszystkich elementow byloby np 30(teoretycznie), to da sei to jakos wyciagnac bez uzycia getElementsByTagName albo querySelector ?

Ten post edytował Star 27.08.2016, 15:25:55
Go to the top of the page
+Quote Post
Comandeer
post 27.08.2016, 15:27:24
Post #5





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Tak, XPath tongue.gif


--------------------
Go to the top of the page
+Quote Post
by_ikar
post 28.08.2016, 12:00:07
Post #6





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Cytat(Star @ 27.08.2016, 16:25:33 ) *
dzieki ,pomoglo smile.gif

a tak z czystej ciekawosci, gdyby element City nie byl ostatni na liscie tylko np 3 od konca, a wszystkich elementow byloby np 30(teoretycznie), to da sei to jakos wyciagnac bez uzycia getElementsByTagName albo querySelector ?


Kod
function checkCity(element) {
    var parent = element.parentElement.parentElement;

    alert(parent.childNodes[parent.childNodes.length - 3].innerHTML);
}
Go to the top of the page
+Quote Post
Comandeer
post 28.08.2016, 12:12:09
Post #7





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


No nie bardzo, bo childNodes łapią też węzły tekstowe, więc przy takim kodzie pewnie byśmy wyciągnęli tym sposobem jakąś spację wink.gif

Jak już to elem.children[ index ] (children zawiera tylko elementowe dzieci).


--------------------
Go to the top of the page
+Quote Post
by_ikar
post 28.08.2016, 15:10:56
Post #8





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Racja, o tym że łapane jest wszystko w sumie zapomniałem, chyba za mało tego typu konstrukcji uzywałem..
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 Wersja Lo-Fi Aktualny czas: 27.04.2024 - 07:48