ID에 점이 포함되어 있을 때 jquery로 ID별 html 노드를 선택하는 방법은?
내 html이 이렇게 생겼다면:
<td class="controlCell">
<input class="inputText" id="SearchBag.CompanyName" name="SearchBag.CompanyName" type="text" value="" />
</td>
#SearchBag을 선택하려면 어떻게 해야 합니까?JQuery와 함께 하는 회사 이름?작동할 수가 없고 모든 것을 깨뜨리는 것이 점일까 봐 두렵습니다.짜증나는 것은 제 아이디를 전부 개명하는 것은 물론 가독성이 떨어지는 것은 말할 것도 없이 많은 일이 될 것이라는 점입니다.
참고:
테이블 배치를 위해 어떻게 테이블이 만들어지지 않는지에 대해서는 이야기하지 말아주세요.저는 CSS의 가치와 부족한 점을 잘 알고 있고 최대한 사용할 수 있도록 노력하고 있습니다.
@Tomalak in comments:
ID 선택기 앞에 해시 #가 있어야 하므로 여기에 모호함이 없어야 합니다.
"#id.class"는 ID와 별도의 클래스가 일치해야 하는 유효한 선택기이며, 항상 완전한 중복은 아닙니다.
CSS에서 리터럴 '.'을 선택하는 올바른 방법은 "#id\.moreid"입니다.이것은 일부 오래된 브라우저(특히 IE5.x)에서 문제를 일으켰지만, 모든 최신 데스크톱 브라우저가 이를 지원합니다.
jQuery 1.3.2에서도 동일한 방법이 작동하는 것처럼 보이지만 테스트를 충분히 하지는 않았지만 quickExpr이 이 방법을 선택하지는 않지만 좀 더 관여된 셀렉터 파서가 올바르게 작동하는 것 같습니다.
$('#SearchBag\\.CompanyName');
한 가지 변형은 다음과 같습니다.
$("input[id='SearchBag.CompanyName']")
당신이 사용한다면 당신은 탈출할 필요가 없습니다.document.getElementById
:
$(document.getElementById('strange.id[]'))
getElementById
입력이 단지 ID 속성이라고 가정하므로 점을 클래스 선택기로 해석하지 않습니다.
단답형:id=의 요소가 있는 경우"foo.bar"
, 셀렉터를 이용하시면 됩니다.$("#foo\\.bar")
긴 답변:이것은 jquery 설명서의 일부입니다. 섹션 셀렉터는 여기 http://api.jquery.com/category/selectors/ 에서 확인할 수 있습니다.
질문에 대한 답변은 문서의 맨 처음에 나와 있습니다.
메타 문자(예:!"#$%&'()*+,./:;?@[\]^`{|}~ )이름의 문자 그대로 부분으로서, 당신은 다음과 같은 문자를 탈출해야 합니다.백슬래시 두 개: \\예를 들어 id="foo.bar "인 요소가 있는 경우,$("#foo\.bar") 선택기를 사용할 수 있습니다.W3C CSS 규격은 다음을 포함합니다.유효한 CSS 셀렉터에 관한 전체 규칙 집합.또한 유용한 것은식별자에 대한 CSS 문자 탈출 시퀀스에 대한 Mathias Bynens의 블로그 엔트리.
ID가 변수에 있는 경우 특성 선택이 적절한 것 같습니다.
var id_you_want='foo.bar';
$('[id="' + id_you_want + '"]');
이 내용은 jQuery selectors API에 나와 있습니다.
: :
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
의 문자 그대로 으로, 두의 백슬래시)로 탈출해야 합니다.\\
. 예를 들어, 다음과 같은 요소가 있습니다.id="foo.bar"
, 셀렉터를 사용할 수 있습니다.$("#foo\\.bar")
.
간단히 말해서, 접두사를 붙입니다..
와 함께\\
.
$('#SearchBag\\.CompanyName')
는 는입니다..
수업과 일치할 것입니다.$('#SearchBag.CompanyName')
일치할 것입니다<div id="SearchBag" class="CompanyName">
은 . \\.
인 Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ,.
특별한 의미 없이 원하는 ID와 일치합니다.
은 모든 은 에 됩니다 됩니다 에 은 .!"#$%&'()*+,./:;<=>?@[\]^`{|}~
그렇지 않으면 jQuery에서 선택자로서 특별한 의미를 가질 수 있습니다.
더 일반적인 솔루션을 찾고 있는 여러분, 특수 문자 앞에 하나의 백워드 슬래시를 삽입하는 하나의 솔루션을 찾았습니다. 이것은 특수 문자가 포함된 디브에서 이름과 ID를 검색하는 것과 관련된 문제를 해결합니다.
"str1.str2%str3".바꾸기(/[^\w\s]/gi, '\\$&')
"Str1\.str2\%str3"을 반환합니다.
이것이 유용하기를 바랍니다!
속성 선택기를 사용할 수 있습니다.
$("[id='SearchBag.CompanyName']");
또는 요소 유형을 지정할 수 있습니다.
$("input[id='SearchBag.CompanyName']");
언급URL : https://stackoverflow.com/questions/605630/how-to-select-html-nodes-by-id-with-jquery-when-the-id-contains-a-dot
'programing' 카테고리의 다른 글
도커-영구 데이터 MySQL 구성 (0) | 2023.09.11 |
---|---|
안드로이드에서 보기가 보이는지 확인하려면 어떻게 해야 합니까? (0) | 2023.09.06 |
MariaDB가 절차에서 삽입 실행을 수행하지 않습니다. (0) | 2023.09.06 |
CSS에서 ="XYZ"의 라벨을 선택하는 방법은? (0) | 2023.09.06 |
동일한 Jenkins 작업 공간에서 여러 git 저장소 체크아웃 (0) | 2023.09.06 |