ID에 대괄호가 포함 된 경우 ID로 DOM 요소를 찾으시겠습니까?
다음과 유사한 ID를 가진 DOM 요소가 있습니다.
something[500]
Ruby on Rails 애플리케이션에 의해 구축되었습니다. 이 요소를 jQuery를 통해 가져올 수 있어야 DOM 위로 이동하여 사전에 액세스 할 수없는 변수 ID가있는 부모의 부모를 삭제할 수 있습니다.
내가 어떻게 할 수 있는지 아는 사람이 있습니까? 다음 코드가 작동하지 않는 것 같습니다.
alert($("#something["+id+"]").parent().parent().attr("id"));
추가 검사시 다음 사항이 적용됩니다.
$("#something["+id+"]")
객체를 반환하지만 ".html ()"또는 ".text ()"를 실행하면 결과는 항상 null이거나 빈 문자열입니다.
속성 선택 자로 간주되지 않도록 대괄호를 이스케이프해야합니다. 이 시도:
alert($("#something\\["+id+"\\]").parent().parent().attr("id"));
선택기의 특수 문자 , 특히 두 번째 단락을 참조하십시오 .
메타 문자 (예
!"#$%&'()*+,./:;<=>?@[\]^``{|}~
:)를 이름의 리터럴 부분으로 사용하려면 두 개의 백 슬래시를 사용하여 이스케이프해야합니다\\
.. 예를id="foo.bar"
들어가 있는 요소 는 선택기를 사용할 수 있습니다$("#foo\\.bar")
. W3C CSS 사양에는 유효한 CSS 선택자와 관련된 전체 규칙 집합이 포함되어 있습니다 . 또한 식별자 에 대한 CSS 문자 이스케이프 시퀀스에 대한 Mathias Bynens의 블로그 항목도 유용합니다 .
ID 는 대괄호를 포함 할 수 없습니다 . 그것은되는 사양에 의해 금지 .
일부 브라우저는 오류를 수정하고 대처할 수 있지만 잘못된 데이터를 처리하는 대신 데이터를 수정해야합니다.
대괄호는 속성 필터 인 jQuery 선택자 에게 특별한 의미가 있습니다.
이것들을 벗어나면 당신의 요소가 잘 될 것입니다.
$( "#something\\[" + id + "\\]" )
당신은 또한 할 수 있습니다
$('[id="something['+id+']"]')
이 시도:
alert($("#something\\["+id+"\\]").parent()[0].parent()[0].attr("id"));
당신은 그들을 사용하여 탈출 \\
하거나 다음과 같이 할 수 있습니다 ...
$(document.getElementById("something[" + id + "]"))
"모든 메타 문자
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
이름의 리터럴 부분으로서 두 개의 백 슬래시 ()로 이스케이프되어야합니다 \\
.
예를 들어 id = "foo.bar"인 요소는 선택기를 사용할 수 있습니다.
$("#foo\\.bar")
"[source : jquery doc ] 및 id ="foo [bar] "요소 (W3C에는 유효하지 않지만 JQuery에서 인식됨)는 선택기를 사용할 수 있습니다.
$("#foo\\[bar\\]")
(다른 많은 사람들과 마찬가지로 asnwer이지만 모두 함께 :))
참고 URL : https://stackoverflow.com/questions/1239095/find-dom-element-by-id-when-id-contains-square-brackets
'Development Tip' 카테고리의 다른 글
Visual Studio 용 Xamarin을 사용하여 실제 Android 디바이스에서 디버그하려면 어떻게하나요? (0) | 2020.10.26 |
---|---|
C #에서 AppDomain 사용 (0) | 2020.10.26 |
JSDoc에서 개방형 인수 함수를 문서화하는 올바른 방법 (0) | 2020.10.26 |
Maven 3 및 JUnit 4 컴파일 문제 : org.junit 패키지가 없습니다. (0) | 2020.10.26 |
getenv () 대 PHP에서 $ _ENV (0) | 2020.10.26 |