Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Ścieżka do elementu
Fred1485
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


Hej,

Czy to w czystym JS, czy jQ pobierając odpowiedni węzeł dokumentu jest jakiś "standard" podawania "ścieżki" do danego elementu, np.

  1. <div id="div">
  2. <ul>
  3. <li>
  4. <a class="klasa">blabla</a>
  5. </li>
  6. </ul>
  7. </div>


Przykładowo,
  1. var d = $("#div ul li a.klasa");
  2.  
  3. //vs
  4.  
  5. var d = $("#div .klasa");
  6.  
  7. //czy jakikolwiek inny sposób


Wiadomo, wynik będzie taki sam, czy to zależy tylko i wyłącznie od widzimisie programisty, czy sobie całą "ścieżkę" poda czy jak to jest?


--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
Comandeer
post
Post #2





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

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


Z racji tego, że są to selektory CSS, to obowiązują tu takie same zasady, co tam. Więc jeśli .klasa występuje jedynie w #div, to najbardziej poprawnym zapisem będzie .klasa (największa wydajność).


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





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


Czyli coś w stylu najmniejszej linii oporu tongue.gif


--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
Comandeer
post
Post #4





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

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


Raczej ograniczanie pracy dla parsera CSS wink.gif Pamiętaj, że selektory są czytane od prawej do lewej, zatem selektor #div ul li a.klasa implikuje takie działanie:
  1. Znajdź wszystkie elementy o klasie .klasa
  2. Zostaw tylko te, które są równocześnie linkami
  3. A teraz dodatkowo wywal wszystkie linki, których przodkiem nie jest li
  4. A teraz wywal wszystkie linki, których przodek li nie jest potomkiem ul
  5. Na koniec sprawdź czy na pewno całość jest wsadzona w #div


A selektor .klasa wykonuje aż jeden krok z tej listy.


--------------------
Go to the top of the page
+Quote Post
Fred1485
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


No właśnie chodziło mi o to, żeby jak tylko się da dawać najmniej do "czytania". Już wiem co i jak.


--------------------
  1. echo 'I was trying';
  2. die ();
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 - 20:02