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/
'IT > JQUERY' 카테고리의 다른 글
[Jquery] Jquery 문자열 자르기 split() (0) | 2021.02.25 |
---|---|
ajax로 체크된 체크박스 배열(list) + 객체(object)로 값 넘기기 (0) | 2020.04.29 |
[jqgrid] jqgrid 특정 row, cel 속성 추가하기 (2) | 2015.11.12 |
브라우져 or 모바일 구분 (0) | 2015.10.03 |
javascript 회원가입 유효성 체크 (0) | 2015.10.03 |