본문 바로가기

IT/JQUERY

jQuery unrecognized expression 오류

반응형

jQuery에서  !"#$%&'()*+,./:;<=>?@[\]^`{|}~ 등의 특수문자를 셀렉터로 사용하면 unrecognized expression 과 같은 오류가 발생하는거 같다.



일단 해결 방법으로는 아래와 같이 특수문자를 \특수문자 이런식으로 변경하면 jQuery 셀렉터에서 제대로 인식된다고 하여 다음과 같이 변경하여 사용했다.


     1. \추가

var replaceInstanceName = function (selectId) {

var replaceInstName = selectId.replace(/[\s\!"#\$%&'\(\)\*\+,.\/\:;<=>\?@\[\]\^`\{\|\}\~]/g, '\\$&')

return replaceInstName;

}


   2. Ascii 코드로 면경

var changeASCII = function(selectId){

var iChars = "_~`.!$%@^*+=-[]\\\';,/{}|\":<>?();";

var temp = selectId;

for(var i=0; i<temp.length; i++){

if (iChars.indexOf(temp.charAt(i)) !== -1) {

temp = temp.substring(0,i)+temp.charCodeAt(i)+temp.substring(i+1,temp.length);

}

}

return temp;

}




아직 테스트를 제대로 못해봐서 좀더 테스트해서 보완해야겠다.


참고 url

http://api.jquery.com/category/selectors/




728x90
반응형