2010-11-22 5 views
4

id에 '/'가 포함될 수있는 DOM 요소가 있습니다. 그것이 비록, -'/'+ jquery가 포함 된 'id'에서 검색

jQuery('#activities/_terp_count') //returns null 
+5

ID 속성에는 슬래시를 사용할 수 없습니다. jQuery는 이러한 요소를 찾기가 쉽지 않습니다. 즉, 해당 ID로 요소를 가져 오는 방법이 여전히있을 수 있습니다. 또한 "해당 ID가있는 모든 요소"이러한 요소는 하나만 있어야합니다. – BoltClock

+3

'id'는 문자 ([A-Za-z])로 시작해야하며 문자, 숫자 ([0-9]), 하이픈 (-), 밑줄 (_ "), 콜론 (": ") 및 마침표 (". ")"로 표시됩니다. '/'는 유효하지 않은 문자입니다. – kennytm

+1

다음을 참조하십시오 : http://stackoverflow.com/questions/70579/what-is-a-valid-value-for-id-attributes-in-html – Kevin

답변

4

jQuery('[id=activities/_terp_count]')이 실제로 그 (http://jsfiddle.net/jXsvA/ 예)를 발견해야한다는

jQuery('[id=activities/_terp_count]') //returns null 

참고 : 내가 예에 대한 ID 을 가진 모든 요소를 ​​필요로하는, 편대 다음 사용하려는 ID로 직접 검색하는 것보다 느리게 진행됩니다. 태그가 항상 예를 ​​들어 <div> 인 경우 jQuery('div[id*=activities/_terp_count]')과 같이 선택기를 어떤 방식 으로든 제한 할 수 있으면 더 빠릅니다. 당신이 / 기호 탈출 경우

+0

솔루션이 나에게 도움이되었습니다. 내부에 따옴표 ('id'를 중심으로)가 있습니다 :'jQuery ('[id = "activities/_terp_count"]')'. 그것 없이는'Syntax error, unrecognized expression ... '이 발생했습니다. –

7

(하지만, /은 내가 아는 한, jQuery를 또는 CSS의 공간적 의미가 없습니다) 위의 솔루션은 나를 위해 작동하지만 id로 요소를 가져 오는 네이티브 메서드에 이점이 있다는 점에 주목할 필요가 있습니다. 즉, document.getElementById ('strin/g')는 jQuery ("strin/g ")는 실패합니다 (jQuery가 특별한 처리없이"/ "를 질식하는 토큰 파서를 사용하기 때문에). JQuery와 해당 요소의 버전 포장으로 활용하려면 다음 당신은 항상 통제 할 수없는 경우, 사실

jQuery(document.getElementById('activities/_terp_count')); 

를 정확히 말하자면 (실제 ID로 가고 있어요 당신은 요소에 대한 페이지를 검색하려는 경우 url #hash에 지정된 무언가의 ID) a) 위험 할 수 있고 b) jQuery (document.getElementById (window.location.has.replace ("#", ''))))); jQuery ("#"+ window.location.has.replace ("#", ''))보다 훨씬 더 안정적으로 작동합니다. 왜냐하면 그것은 쉽게 부서지지 않기 때문입니다.

예 : 사용자가 단지 특정 URL 매개 변수 또는 해시에 입력하여 암호를 해독 할 수 있도록하지 않으려면

jQuery(document.getElementById("_=_")) //<--- null, or the actual element, if you have one which said crazy, non-compliant id 

jQuery("#_=_") //<--Uncaught Error: Syntax error, unrecognized expression: #_=_ 

, 당신이 할 수있는 경우에 그 사용 사례를 방지하고 경우 네이티브 ID 요소를 사용할 수 없습니다.

+1

이것은 가장 단순한 솔루션이자 가장 합리적인 솔루션입니다. 귀찮은 이유 [이스케이프 처리] (http : //learn.jquery.코드에서 사용되는 문자로 된 요소에 의해 요소별로 사용되는 jquery-core/faq/how-do-i-select- (항상 오류가 발생하기 쉽습니다) 예기치 않은 상황에서) 네이티브 javascript 메서드에 대한 resposability를 활용할 수 있습니다. – thebugfinder

관련 문제