Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][jQuery] Selektory filtrujące
klapaucius
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Mam w swoim pliku HTML pewną ilośc akapitów <p></p>. I teraz za pomocą jQuery chciałbym zrobić zbiór wybranych tylko akapitów.

Chciałbym aby w zbiorze znalazły się: pierwszy akapit oraz akapity z przedziału od 3 do 5 (oczywiście jest to tylko przykład).

No więc tworzę zbiór elementów "p", dodając do niego trzy selektory filtrujące:
:first (pierwszy el.)
:gt(3) (elementy, ktorych indeks jest wiekszy od 3)
:lt(5) (elementy, ktorych indeks jest mniejszy od 5)
Całośc wygląda następująco:
  1. $('p:first:gt(3):lt(5)').text('I przykładowo wypełniam wybrane przezemnie akapity tym oto tekstem.');


Jednak tym sposobem nie wyszukuje mi żadnego elementu, wszystkie akapity są puste... Dlaczego? Co robię źle? Czy jest jakieś inne, równie proste, ale działające rozwiązanie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
ixpack
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


po co kombinujesz?
- zapomniales chyba find...

  1. $('html,body').find('pre:eq(0), pre:eq(3), pre:eq(4), pre:eq(5)').text('I przykładowo wypełniam wybrane przezemnie akapity tym oto tekstem.');


jquery api dosc (IMG:style_emoticons/default/exclamation.gif)

Ten post edytował ixpack 26.05.2013, 01:20:43
Go to the top of the page
+Quote Post
klapaucius
post
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Cytat(ixpack @ 26.05.2013, 02:20:29 ) *
po co kombinujesz?
- zapomniales chyba find...

  1. $('html,body').find('pre:eq(0), pre:eq(3), pre:eq(4), pre:eq(5)').text('I przykładowo wypełniam wybrane przezemnie akapity tym oto tekstem.');


jquery api dosc (IMG:style_emoticons/default/exclamation.gif)


A nie da się tego wykonać w taki sposób, aby podawać wybrany zakres elementów? No bo w przykładzie podałem co prawda dośc mały zakres (od 3 do 5), ale gdybym np. chciał dać zakres od 3 do 100, to już trochę mało optymalne rozwiązanie każdy akapit osobno i recznie ładować do do zbioru (za pomocą selektora filtrującego :eq(x), tak jak pokazałeś)

To moje "kombinowanie" wynika z tego, iż tworzę wtyczkę, której działanie będzie zależne od podanych parametrów, dlatego zależy mi na takim rozwiązaniu, jakie opisałem.

Ten post edytował klapaucius 26.05.2013, 11:19:22
Go to the top of the page
+Quote Post
Greg0
post
Post #4





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


  1. $("p").slice(3, 100)


jQuery.slice()

Ten post edytował Greg0 26.05.2013, 11:37:39
Go to the top of the page
+Quote Post
klapaucius
post
Post #5





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Cytat(Greg0 @ 26.05.2013, 12:35:49 ) *
  1. $("p").slice(3, 100)


jQuery.slice()

I o to mi chodziło. Dziękuję za pomoc : )
Go to the top of the page
+Quote Post
lobopol
post
Post #6





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


To dla potomności można to zrobić tak:
[JAVASCRIPT] pobierz, plaintext
  1. $('p:eq(0), p:lt(5):gt(3)').text('a');
[JAVASCRIPT] pobierz, plaintext


choć to jest równoznaczne z:
[JAVASCRIPT] pobierz, plaintext
  1. $('p:eq(0), p:eq(4)').text('a');
[JAVASCRIPT] pobierz, plaintext


ale dla większego zakresu już spełnia swoją role
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 09:05