복붙노트

[JQUERY] jQuery를 아이디 선택은 첫 번째 요소에 대해서만 작동합니다

JQUERY

jQuery를 아이디 선택은 첫 번째 요소에 대해서만 작동합니다

해결법


  1. 1.당신은 당신이 동일한 ID를 가진 페이지에 두 개 이상의 요소를 가질 수 없습니다, 잘못된 HTML이있다.

    당신은 당신이 동일한 ID를 가진 페이지에 두 개 이상의 요소를 가질 수 없습니다, 잘못된 HTML이있다.

    사양을 인용 :

    해결 방법 : ID와 클래스로 변경

    <button type="button" class="btn btn-primary xyz" value="1">XYZ1</button>
    <button type="button" class="btn btn-primary xyz" value="2">XYZ2</button>
    <button type="button" class="btn btn-primary xyz" value="3">XYZ3</button>
    

    그리고 jQuery 코드 :

    $(".xyz").click(function(){
        alert(this.value);
        // No need for jQuery :$(this).val() to get the value of the input.
    });
    

    jQuery를이 선택 문서를 #ID :

    당신이 jQuery를 소스를 보면 당신은 id를 선택기로 $를 호출 할 때 볼 수 있습니다 - ($는 ( "# ID가")), JQuery와 document.getElementById를 기능 기본 자바 스크립트를 호출

    // HANDLE: $("#id")
    } else {
        elem = document.getElementById( match[2] );
    }
    

    비록, document.getElementById를의 사양에 그들은이 (아마도 모든?) 대부분의 브라우저가 그것을 구현하는 방법, 그것은 첫 번째 값을 반환해야합니다 언급하지 않았다.

    데모


  2. 2.ID 수단 "식별자"를 한 번만 문서 당 유효합니다. 당신의 HTML이 시점에서 잘못이기 때문에, 일부 브라우저는 ID와 마지막 발생하는 요소, 제 일부 선택하십시오.

    ID 수단 "식별자"를 한 번만 문서 당 유효합니다. 당신의 HTML이 시점에서 잘못이기 때문에, 일부 브라우저는 ID와 마지막 발생하는 요소, 제 일부 선택하십시오.

    이름 변경 ID는 좋은 단계가 될 것입니다.

    그런 다음 (버튼 [이름 = "XYZ를"] ') $를 사용합니다. () {(기능을 클릭


  3. 3.당신이 $ ( '버튼을 # XYZ') 선택기를 사용하는 경우 내 경험에서, 대신 작동합니다. 그건 해킹,하지만 여전히 잘못된 HTML입니다.

    당신이 $ ( '버튼을 # XYZ') 선택기를 사용하는 경우 내 경험에서, 대신 작동합니다. 그건 해킹,하지만 여전히 잘못된 HTML입니다.


  4. 4.당신은 같은 ID로 여러 요소가있는 경우이 또한 일했다.

    당신은 같은 ID로 여러 요소가있는 경우이 또한 일했다.

     $("button#xyz").click(function(){
      var xyz = $(this).val();
      alert(xyz);
     });
    

    당신은 여기에서 확인하실 수 있습니다


  5. 5.ID를 변경하는 클래스가 낫다에 비록, 당신은 속성을 사용하여 동일한 ID가 선택을 동일 모든 요소를 ​​얻을 수 있습니다 :

    ID를 변경하는 클래스가 낫다에 비록, 당신은 속성을 사용하여 동일한 ID가 선택을 동일 모든 요소를 ​​얻을 수 있습니다 :

    $('[id="xyz"]')
    

    또는이 아이디 XYZ 만 버튼을 얻을 수 있습니다 :

    $('button[id="xyz"]')
    

    아이디 XYZ 또는 div의 :

    $('div[id="xyz"]')
    

    기타

    또는 당신이 사용할 수있는 "XYZ"를 포함 ID를 가진 모든 요소를 ​​얻기 위해 "속성은 선택기를 포함"

    $('[id*="xyz"]')
    

    물론,이 방법 부분적으로 "XYZ"를 포함하는 것을 ID로 모든 요소는이 선택한 얻을 것이다.


  6. 6.ID가 페이지의 HTML에서 고유하므로 동일한 ID를 가질 수 없습니다. 클래스 또는 다른 속성 이름으로 변경합니다.

    ID가 페이지의 HTML에서 고유하므로 동일한 ID를 가질 수 없습니다. 클래스 또는 다른 속성 이름으로 변경합니다.

    $('attributename').click(function(){ alert($(this).attr(attributename))});
    

  7. 7.당신이 용기에 동일한 ID가 있다면 당신은 모든 이벤트에 대한 각 요소에 액세스 할 수 ()에 사용할 수 있습니다

    당신이 용기에 동일한 ID가 있다면 당신은 모든 이벤트에 대한 각 요소에 액세스 할 수 ()에 사용할 수 있습니다

    $ ( "# 용기"). (함수를 "# xyz이"을 "클릭"에 () { 경고 ($ (이) .val ()) }) <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">

    <버튼 ID = "XYZ"TYPE = "버튼"클래스 = "BTN BTN - 우선"값 = "1"> XYZ1 <버튼 ID = "XYZ"TYPE = "버튼"클래스 = "BTN BTN - 우선"값 = "2"> 가나다 <버튼 ID = "XYZ"TYPE = "버튼"클래스 = "BTN BTN - 우선"값 = "3"> XYZ3

    과에 대한 정보는 () 여기

  8. from https://stackoverflow.com/questions/11114622/jquery-id-selector-works-only-for-the-first-element by cc-by-sa and MIT license