programing

.prop('checked', false) 또는 .removeAtr('checked')?

subpage 2023. 9. 26. 22:21
반응형

.prop('checked', false) 또는 .removeAtr('checked')?

프롭 방식의 도입으로 이제 나는 허용된 체크박스의 선택을 취소하는 방법을 알아야 합니다.해당:

$('input').filter(':checkbox').removeAttr('checked');

아니면

$('input').filter(':checkbox').prop('checked',false);

jQuery 3

jQuery 3 현재.removeAttr해당 속성을 다음으로 설정하지 않습니다.false더 이상:

jQuery 3.0 이전 버전에서는.removeAttr()등의 부울 속성으로checked,selected, 아니면readonly또한 해당 명명된 속성을 다음으로 설정합니다.false. 이 동작은 이전 버전의 Internet Explorer에 필요했지만 속성은 초기 값을 나타내고 속성은 현재(동적) 값을 나타내기 때문에 최신 브라우저에서는 올바르지 않습니다.

사용하는 것은 거의 항상 실수입니다..removeAttr( "checked" )DOM 요소에서DOM이 나중에 HTML 문자열로 다시 직렬화되는 경우에만 유용할 수 있습니다.다른 모든 경우에는.prop( "checked", false )대신 사용해야 합니다.

로그변경

따라서만.prop('checked',false)이 버전을 사용할 때 올바른 방법입니다.


원답(2011년부터):

기본 부울 속성이 있는 속성의 경우checked하나),removeAttr기본 속성을 다음으로 자동 설정합니다.false. (이는 jQuery 1.6.1에 추가된 하위 호환성 "fix" 중 하나입니다.)

둘 중 하나라도 효과가 있을 겁니다하지만 두번째 예는 (사용하는)prop)이 둘 중 더 정확합니다.확인란의 선택을 취소하는 것이 목표라면 속성이 아닌 속성에 영향을 미치기를 원하는 것이며, 이 과정을 거칠 필요가 없습니다.removeAttr그러려고요.

사용하다checked: 확인란의 true, false 속성입니다.

jQuery:

if($('input[type=checkbox]').is(':checked')) {
    $(this).prop('checked',true);
} else {
    $(this).prop('checked',false);
}

크롬에 문제가 있었고 두 기능을 모두 사용하여 해결했기 때문에 prop와 attr 둘 다 사용하는 것을 추천합니다.

if ($(':checkbox').is(':checked')){
    $(':checkbox').prop('checked', true).attr('checked', 'checked');
}
else {
    $(':checkbox').prop('checked', false).removeAttr('checked');
}

동일한 작업을 수행하는 또 다른 대안은 type=checkbox 속성을 필터링하는 것입니다.

$('input[type="checkbox"]').removeAttr('checked');

아니면

$('input[type="checkbox"]').prop('checked' , false);

jQuery API 설명서에서:

속성과 속성 간의 차이는 특정 상황에서 중요할 수 있습니다.jQuery 1.6 이전의 메소드는 일부 특성을 검색할 때 속성 값을 고려하는 경우가 있으며, 이로 인해 일관되지 않은 동작이 발생할 수 있습니다.jQuery 1.6 기준,.prop()method는 속성 값을 명시적으로 검색할 수 있는 방법을 제공합니다..attr()속성을 검색합니다.

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>   

  

  <input id="checkbox" type="checkbox" onchange='act(this)'>
     
  <input id="checkbox" type="checkbox" onchange='act(this)'>
  
  <script>
  
  
   function act(element){
   
       if($(element). prop('checked'))  
       {
           console.log('You have Checked it');
       }else
       {
        console.log('You Un-Checked it');
       }
   }
   
   </script>    

언급URL : https://stackoverflow.com/questions/6169826/propchecked-false-or-removeattrchecked

반응형