Piszę JavaScript dla strony, która została zbudowana za pomocą WYSIWYG. Nie, teraz nie mogę wejść i zmienić identyfikatorów lub naprawdę poprawić dom.

To jest element DOM, który próbuję wybrać (został stworzony przez WYSIWYG).

<td nowrap="true" align="left" id="vW2070;" name="vW2070;" style="padding-left: 2pt; padding-right: 2pt; border-left: 1pt solid black; cursor: auto; background-color: rgb(164, 194, 64); color: rgb(0, 0, 0);" class=" nAll selected" selected="1" sn="itemList">TOP 5</td>

Obecnie w moim javascript ID staram się zdobyć #vW2070;. Z jakiegoś powodu document.getElementById("vW2070;") powraca idealnie, ale $("#vW2070;") zwraca wartość null. Dlaczego to? Muszę użyć selektora jQuery.

Dane funkcja jest pobiegł na $(document).ready.

Nigdy nie widziałem czegoś takiego.

Dziękuję wam wszystkim.

Edytuj: Bez pół-dwukropki też go nie podnosi. Pół-dwukropek jest dosłownie w atrybucie ID na elemencie dzięki WYSIWYG.

3
Jesse Atkinson 22 grudzień 2011, 18:28

6 odpowiedzi

Najlepsza odpowiedź

Możesz uciec w ten sposób półkolony:

$("#vW2070\\;") //Use one backslash to escape the semicolon for the Sizzle parser and the other to escape the first backslash for the javascript parser, so two in total

Lub

$(document.getElementById("#vW2070;")).jquerystuff(...);

Jsfiddle: http://jsfiddle.net/htyqc/

Również, Odpowiedni link w zależności od tego, jak wszechstronny atrybut ID jest.

7
Dennis 22 grudzień 2011, 14:44

Powinieneś spróbować ucieczki ";", używając "\"

Zmień $("#vW2070;") do $("#vW2070\\;")

Fiddle: http://jsfiddle.net/28cu/

1
dku.rajkumar 22 grudzień 2011, 14:40

Ponieważ nie możesz edytować swojego identyfikatora, który ma średnik, spróbuj uciec w selektorze, tak jak:

$("#vW2070\\;")

Uciekający się tutaj nie jest niczym więcej niż dodawanie "\" przed średnikiem.

Oto kilka Wnośnik: Jakie są ważne wartości dla identyfikatora atrybut w HTML?

3
Community 23 maj 2017, 10:08

Spróbuj usunąć; nie powinno tego potrzebować

$("#vW2070")
1
Dominic Green 22 grudzień 2011, 14:29

Spróbuj usunąć pół-colon $("#vW2070;") do $("#vW2070")

Czy nie otrzymujesz komunikatu o błędzie? W chromie powinieneś uzyskać Uncaught Error: Syntax error, unrecognized expression: ;

1
Richard 22 grudzień 2011, 14:30

Jest błędem jQuery lub możemy powiedzieć ograniczenie w aktualnej wersji jQuery. Nie pozwoli ";" W identyfikatorze.

0
Robin Michael Poothurai 22 grudzień 2011, 14:41