0

셀렉터에서 사용할 변수가 있지만 변수에 특수 문자가 포함되어 있습니다. 이것을 할 수있는 방법이 있습니까?JQuery 선택기 : 선택기에 삽입 된 변수의 특수 문자를 이스케이프 처리하는 방법

hasSpecialChr='dynamicVar[1][3]'; 

element = $('li.parent#'+hasSpecialChr); 

편집 : 아래의 첫 번째 의견에 답하십시오.

+3

빠른 구글 검색 JQuery와 문서에 의해 설명 된대로 문자를 제거하는 함수를 사용하는 것입니다 : https://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/ –

+0

당황스러운 일이 ... – Phil

+1

가능한 복제본 : http://stackoverflow.com/questio ns/739695/jquery-selector-value-escaping – JonSG

답변

0

이 시도 :

hasSpecialChr='dynamicVar\\[1\\]\\[3\\]'; 
element = $('li.parent#'+hasSpecialChr); 
+0

나는 이것이 작동한다고 생각하지 않는다. 나는 그들이 $ ("# dynamicVar \\\ [1 \\\] \\\ [3 \\\]")을 필요로한다고 생각한다. – JonSG

+0

예, 시도했는데 작동하지 않습니다. \\는 그 뒤의 첫 번째 문자를 이스케이프합니다. – Phil

+0

죄송합니다. 답변을 업데이트했습니다. –

0

이이 문제를 해결할 수 있습니다

s.replace(/[^a-z\d\s]+/gi, ""); 

모든 문자, 숫자 및 공백을 제외하고 제거합니다. 에서 언급 한 바와 같이

hasSpecialChr='dynamicVar[1][3]'; 
hasSpecialChr.replace(/[^a-z\d\s]+/gi, ""); 
element = $('li.parent#'+hasSpecialChr); 
관련 문제