programing

ID에 점이 포함되어 있을 때 jquery로 ID별 html 노드를 선택하는 방법은?

megabox 2023. 9. 6. 22:00
반응형

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

반응형