2012-09-25 1 views
0

죄송합니다. 게시하기 전에 답변을 찾으 셨습니다. 그러나 내가 찾고있는 것을 찾지 못했습니다.jQuery ("# someIdName") 요소 참조가있는 인식 할 수없는 표현

jQuery UI의 태그 위젯을 사용하려고합니다. 다음과 같이 내가 요소에 .tagit() 방법을 적용하기 위해 노력하고있어 :

jQuery("#myTags:.5aedf589").tagit(); 

페이지의 실제 요소가 나는 tagit() 방법을 적용하기 위해 노력하고있어있는 것은 이것이다 :

<ul id="myTags:.5aedf589"> 

그 합법적 인 ID 이름이어야하지만, 단지 "#myTags"으로 시도한 경우에도 마찬가지입니다.

내 스크립트에 Prototype과 jQuery가 모두 포함되어 있기 때문에 $ 별칭 대신 jQuery를 사용하고 있습니다. 먼저 jQuery가로드되고 문서에서 을 사용하지 않고도 $ 대신 jQuery를 사용할 수 있다고합니다. noConflict도 사용하려고했지만 도움이되지 않았습니다.

문제는 그 다음 자바 스크립트 오류가 jQuery를 발현 결과 위 :

Syntax error, unrecognized expression: "#myTags:.5aedf589" 

답변

2

:.와 쿼리에서 특별한 의미를 가지고, 기간은 클래스 선택하고 콜론 의사의 선택입니다. 다른 용도로 사용하려면 \으로 이스케이프 처리하고 \에서 JS 문자열을 이스케이프 처리해야합니다. 따라서 앞에 \\을 삽입하십시오. http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_select_an_element_by_an_ID_that_has_characters_used_in_CSS_notation.3F

jQuery("#myTags\\:\\.5aedf589").tagit(); 
+0

글쎄, 내가있을거야. 나는 ... 그걸 몰랐다. 그것은 효과가있다! (또한 "#myTags"도 현재 버전에서 작동했습니다.) 감사합니다! –

0

왜이 셀렉터를 시도하고

jQuery("[id*=5aedf589]").tagit(); 

그것은 선택됩니다를 작동하는 경우 표시되지 않습니다 id가 5aedf589 인 셀렉터를 선택하십시오. 이것은 실렉터가 실제 문제인지 확인하는 것입니다.

여러 셀렉터가 일치하는 문제가있는 경우 .: \

+0

다른 것들과 일치 할 수 있으므로 가능한 해결 방법 –

0

오류는 요소의 id 때문입니다. 예, HTML 요소에 대한 유효한 ID이지만 클래스 기반 선택기 ':'를 사용하는 jquery는 의사 선택기와 '.'를 참조합니다. 인식 할 수없는 표현 오류를 던지는 이유는 클래스를 참조하십시오. 의사 선택기의 경우 의사 선택기보다 먼저 클래스를 사용하지 마십시오

@Juan Mendes가 말했듯이 어느 쪽이든 탈출하면됩니다. 또는 요소의 id를 변경합니다.