Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JQuery] dostęp do elementu o zadanym, "egzotycznym" id
ciembor
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 10.02.2010

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


Wszystko działa, jeśli pobieram jakiś element o konwencjonalnie nazwanym id, np:

Kod
alert($("#content").html());


działa wyśmienicie. Jednak nie mogę się dobrać do czegoś takiego:

Kod
alert($("#pl-about.htm").html());


co mnie niesamowicie rozczarowuje, gdyż zgodnie z tym źródłem:

http://www.electrictoolbox.com/valid-chara...l-id-attribute/

ten kod jest poprawny. Ktoś wie jak to przeskoczyć, bez zmiany id? Muszę sprawdzić, czy w dokumencie istnieje div o zadanym id, jeżeli tak, to go wyświetlić, a jeżeli nie, to go załadować z zewnętrznego pliku (pl-about.htm).


--------------------
Blog Macieja Ciemborowicza
Go to the top of the page
+Quote Post
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


To że jest poprawny to nie znaczy jeszcze że działający. Różne przeglądarki różnie podchodzą do tego tematu - w zasadzie lepiej nie używać w idach żadnych znaków specjalnych poza '-_A-Z0-9' Jak koniecznie chcesz z ida pobrać nazwę pliku to zamień . choćby na _ (a później przy odzyskiwaniu nazwy odwrotnie).


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
ciembor
post
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 10.02.2010

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


hmm... pomyślę od tym, ale póki co próbuję jeszcze walczyć. Coś takiego działa:

Kod
alert($("#pl-about\\.htm").html());


Teraz tak, id trzymam w zmiennej newHash. Więc spróbowałem z wyrażeniem regularnym:

Kod
alert($("#" + newHash.replace(/[\.]/g, "\\\\\.")).html());


i nie działa. Wyrażenie na pewno jest poprawne, zwraca pl-about\\.htm (w przypadku tej akurat podstrony)


--------------------
Blog Macieja Ciemborowicza
Go to the top of the page
+Quote Post
everth
post
Post #4





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


A dlaczego nie użyjesz choćby atrybutu rel? Zresztą, skoro chcesz kombinować.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
Crozin
post
Post #5





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

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


Kod
#pl-about.htm
Wybiera elementy o ID "pl-about" i klasie "htm" (oba warunki muszą być spełnione).
Kod
[id='pl-about.htm']
Powinno zadziałać bez problemu.
Go to the top of the page
+Quote Post
everth
post
Post #6





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Heh, Xpath - że też wcześniej nie pomyślałem - tylko dlaczego jQuery rozróżnia zwykły selektor od Xpatha? Bug w silniku jQuery?


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale to nie jest XPath, tylko zwykły, CSS-owy selektor atrybutu, z tego, co pamiętam. winksmiley.jpg


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
everth
post
Post #8





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Jak przejrzałem teraz API to widzę gdzie popełniłem błąd. Rzeczywiście to nie Xpath (usunęli go w bodajże 1.3) tylko składniowo zbliżony zapis. Niemniej ja dalej uznaję to za prawie Xpath - bez znacznika atrybutu działa prawie tak samo.

Pytanie jednak dalej stoi otwarte - dlaczego skoro zapisy selektorów są równoważne to jeden działa, a drugi nie?

@DOWN: biggrin.gif, starzeję się. Niektóre rzeczy są zbyt oczywiste by o nich myśleć.

Ten post edytował everth 13.08.2010, 19:22:59


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
Crozin
post
Post #9





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

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


Bo nie używa się kropek jako części ID, a taka forma forma zapisu (po kropce klasa) jest bardzo wygodna.
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: 19.08.2025 - 19:36