[JQUERY] JQuery와 선택기 문자열에 특수 문자를 탈출하는 필요
JQUERYJQuery와 선택기 문자열에 특수 문자를 탈출하는 필요
해결법
-
1.당신이 값이 어떤 종류의 작동 무언가를 원하는 경우에,이 시도 :
당신이 값이 어떤 종류의 작동 무언가를 원하는 경우에,이 시도 :
var val = $(this).attr('val').replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\\\$&")
두 개의 백 슬래시와 jQuery를 문서의 선택기 페이지에있는 모든 CSS 메타 문자를 탈출하여이 작동합니다.
상황에서,이 같은 까다로운 일을 할 필요가 없습니다 있음을 유의하십시오. 당신은 마티아스 Bynens의 대답에 설명 된대로 값을 탈출하지 않고 주어진 값을 가진 모든 옵션 요소를 선택하는 필터 기능을 사용할 수 있습니다.
-
2.CSS 문자 이스케이프 시퀀스 (선택기에 사용) 까다로운 있습니다. 그들은 심지어 어떻게 CSS에서 모든 문자를 탈출하는 방법을 말할 수있는 웹 응용 프로그램을 만든 너무 까다로운 것.
CSS 문자 이스케이프 시퀀스 (선택기에 사용) 까다로운 있습니다. 그들은 심지어 어떻게 CSS에서 모든 문자를 탈출하는 방법을 말할 수있는 웹 응용 프로그램을 만든 너무 까다로운 것.
그것은 단순히 모든 옵션 요소를 선택하고 자신의 가치 속성 값에 기반을 필터링하는 것이 훨씬 더 간단하고 효율적입니다 :
var value = this.value; $select.find('option').filter(function() { return this.value == value; }).show();
그 방법은, 특별한 이스케이프는 전혀 필요하지 않습니다.
-
3.이것 좀 봐...
이것 좀 봐...
var val = $(this).attr('val').replace(/(\[|\])/g, '\\\\$1'); // something\\[4\\]\\[2\\]
물론, 이것은 단지 특수 문자의 다른하지 브래킷을 처리합니다. 그러나 내 경험에서, 괄호는 내가 사용하는 유일한 사람 (때문에 이와 같은 입력 이름 속성을 처리하는 PHP의 편리한 방법을 : 뭔가 [])
-
4.하지만 대답을 늦게,
하지만 대답을 늦게,
은 "누락 추가 '에서'옵션 [VALUE = ''+ 발 + '"]
VAR 브로 = "무언가 [4] [2]"; $ (( '[ "+ 발 +'"= 값 옵션을 ']') 쇼 ( "선택") 찾기)..; 선택권{ 표시 : 없음; } <스크립트 SRC = "https://code.jquery.com/jquery-3.1.0.js"> script> <선택> <옵션 값 = "무언가 [4] [2]"> 4,2 옵션> <옵션 값 = "무언가 [1] [1]"> 1.1 옵션> 선택>
포장 따옴표없이 - 원래 선택기를 사용하므로 '옵션을 [값을 ='+ 발 + ']
VAR 브로 = "무언가 [4] [2]"; VAR 당나귀 = $ .escapeSelector (발); // 뭔가 \ [4 \] \ [2 \] $ ( '[= 값 옵션을'+ 당나귀 + ']') 쇼 ( "선택") 찾기 ()..; 선택권{ 표시 : 없음; } <스크립트 SRC = "https://code.jquery.com/jquery-3.1.0.js"> script> <선택> <옵션 값 = "무언가 [4] [2]"> 4,2 옵션> <옵션 값 = "무언가 [1] [1]"> 1.1 옵션> 선택>
-
5.jQuery의 자주 묻는 질문 jQuery를가 요구하는 모든 문자를 탈출이을위한 좋은 솔루션을 제공합니다.
jQuery의 자주 묻는 질문 jQuery를가 요구하는 모든 문자를 탈출이을위한 좋은 솔루션을 제공합니다.
그들이 뭐라고 제언하는지의 nullsafe 버전과 같은 I :
function jqid (id) { return (!id) ? null : '#' + id.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1'); }
-
6.다음은 가치에 백 슬래시와 따옴표를 탈출해야, 선택기에 속성 값에 따옴표를 넣어 :
다음은 가치에 백 슬래시와 따옴표를 탈출해야, 선택기에 속성 값에 따옴표를 넣어 :
var val = $(this).attr('val'); val = val.replace(/\\/g, "\\\\").replace(/"/g, '\\"'); $select.find('option[value="' + val + '"]').show();
당신은 값이 (귀하의 예제처럼) 백 슬래시 또는 따옴표가없는 것을 알고 있다면, 당신은 가치의 아무것도 탈출 할 필요가 없습니다, 당신은 단지 선택에 따옴표가 필요합니다.
-
7.선택기 특수 문자로 끝나는 경우 이중 백 슬래시를 사용하여 벗어날 수 없다. 작업의 arround를 사용 정규식이다 : 선택기 ID가 "보너스 +"인 경우 예를 들어, 당신은 사용할 수 있습니다 :
선택기 특수 문자로 끝나는 경우 이중 백 슬래시를 사용하여 벗어날 수 없다. 작업의 arround를 사용 정규식이다 : 선택기 ID가 "보너스 +"인 경우 예를 들어, 당신은 사용할 수 있습니다 :
$("div[id$='bonus+']")
그것은 당신이 동적 선택기가 더 의미가 있습니다.
from https://stackoverflow.com/questions/2786538/need-to-escape-a-special-character-in-a-jquery-selector-string by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 어떻게 텍스트 상자에 캐럿의 픽셀 (x, y) 좌표를받을 수 있나요? (0) | 2020.10.20 |
---|---|
[JQUERY] 타임 존의 이름을 가져옵니다 (0) | 2020.10.20 |
[JQUERY] 양식 제출 '버튼을 비활성화하여 제출 (0) | 2020.10.20 |
[JQUERY] [개체 개체] 무엇을 의미합니까? (자바 스크립트) (0) | 2020.10.20 |
[JQUERY] jQuery를 : DIV로로드 텍스트 파일 삽입 (0) | 2020.10.20 |