복붙노트

[JQUERY] ID가 점을 포함하는 경우 어떻게 jQuery로 ID로 HTML 노드를 선택하려면?

JQUERY

ID가 점을 포함하는 경우 어떻게 jQuery로 ID로 HTML 노드를 선택하려면?

해결법


  1. 1.의견 @Tomalak :

    의견 @Tomalak :

    "#의 id.class"는 ID와 일치하는 별도의 클래스를 모두 필요로하는 올바른 선택이다; 그것은 유효한 그리고 항상 완전히 중복되지.

    '.'올바른 방법은 문자를 선택하기 위해 CSS에서하면을 탈출하는 것입니다 : "#ID \ .moreid". 이 (특히 IE5.x에서) 일부 오래된 브라우저에서 원인 문제로 사용하지만, 모든 현대적인 데스크탑 브라우저를 지원합니다.

    나는 그것을 철저하게 테스트하지 않았습니다 불구하고 동일한 방법으로, jQuery를 1.3.2에서 작동하도록 보인다; quickExpr 그것을 선택하지 않지만, 더 복잡 선택 파서는 그것을 제대로 것 같다 :

    $('#SearchBag\\.CompanyName');
    

  2. 2.하나 개의 변형이 될 것입니다 :

    하나 개의 변형이 될 것입니다 :

    $("input[id='SearchBag.CompanyName']")
    

  3. 3.당신은 당신이 document.getElementById를 사용하는 경우 아무것도 탈출 할 필요가 없습니다 :

    당신은 당신이 document.getElementById를 사용하는 경우 아무것도 탈출 할 필요가 없습니다 :

    $(document.getElementById('strange.id[]'))
    

    에서 getElementById는 점은 클래스 선택으로 해석되지 않도록 입력이, 단지 id 속성 가정합니다.


  4. 4.짧은 답변 : ID = "foo.bar"인 요소가있는 경우, 당신은 선택 $ 사용할 수 있습니다 ( "# foo는을 \\ 바.")

    짧은 답변 : ID = "foo.bar"인 요소가있는 경우, 당신은 선택 $ 사용할 수 있습니다 ( "# foo는을 \\ 바.")

    긴 답변 : 이것은 JQuery와 문서의 일부입니다 - 당신이 여기에서 찾을 수 있습니다 섹션 선택기 : http://api.jquery.com/category/selectors/

    귀하의 질문은 문서의 시작 부분에 바로 대답한다 :

    If you wish to use any of the meta-characters ( such as 
    !"#$%&'()*+,./:;?@[\]^`{|}~ ) 
    as a literal part of a name, you must escape the character with 
    two backslashes: \\. For example, if you have an element with id="foo.bar", 
    you can use the selector $("#foo\\.bar"). The W3C CSS specification contains 
    the complete set of rules regarding valid CSS selectors. Also useful is the 
    blog entry by Mathias Bynens on CSS character escape sequences for identifiers.
    

  5. 5.귀하의 ID 변수에있을 때 ATTR 선택은 적절한 것 같다 :

    귀하의 ID 변수에있을 때 ATTR 선택은 적절한 것 같다 :

    var id_you_want='foo.bar';
    $('[id="' + id_you_want + '"]');
    

  6. 6.이것은 jQuery를 셀렉터 API에 설명되어 있습니다 :

    이것은 jQuery를 셀렉터 API에 설명되어 있습니다 :

    즉, 접두사. 와 \\.

    $('#SearchBag\\.CompanyName')
    

    문제는 점이다. , 클래스를 일치 그래서 $ ( '#의 SearchBag.CompanyName')는

    일치합니다. 는 \\로 탈출했다. 정상으로 처리된다. 특별한 의미와 함께, 당신이 원하는 ID를 일치.

    이 모든 문자를 적용 "# $ % & '() * +, / :; <=> @ [\] ^`!.? {|} ~ 그렇지 않으면 jQuery를의 선택으로 특별한 의미를 가지고있는 것.


  7. 7.보다 일반적인 솔루션을 찾고 얘들 아, 나 특수 문자 앞에 하나의 역 슬래시를 삽입 한 해결책을 발견, 특수 문자가 포함 된 사업부에서 이름 및 ID를 검색 관련이 해결되는 문제.

    보다 일반적인 솔루션을 찾고 얘들 아, 나 특수 문자 앞에 하나의 역 슬래시를 삽입 한 해결책을 발견, 특수 문자가 포함 된 사업부에서 이름 및 ID를 검색 관련이 해결되는 문제.

    이 유용 희망!


  8. 8.당신은 속성 선택기를 사용할 수 있습니다 :

    당신은 속성 선택기를 사용할 수 있습니다 :

    $("[id='SearchBag.CompanyName']");
    

    또는 당신은 요소 유형을 지정할 수 있습니다 :

    $("input[id='SearchBag.CompanyName']");
    
  9. from https://stackoverflow.com/questions/605630/how-to-select-html-nodes-by-id-with-jquery-when-the-id-contains-a-dot by cc-by-sa and MIT license