>  기사  >  웹 프론트엔드  >  jquery .attr이 실패하는 경우 수행할 작업

jquery .attr이 실패하는 경우 수행할 작업

藏色散人
藏色散人원래의
2021-11-11 10:43:232806검색

jquery .attr 실패에 대한 해결 방법: 1. HTML 샘플 파일을 생성합니다. 2. jquery를 통해 확인란을 작동합니다. 3. attr을 prop으로 바꿉니다.

jquery .attr이 실패하는 경우 수행할 작업

이 기사의 운영 환경: Windows 7 시스템, jquery 버전 1.2.6, DELL G3 컴퓨터

jquery .attr이 실패하면 어떻게 해야 합니까?

jquery attr 반복 사용 후 실패 문제 해결

오늘 select all 기능을 만들 때 jq의 attr 방식을 사용했는데, 실제로 사용해보니 처음으로 의 기능을 깨달을 수 있었습니다. 모두 선택하고 모두 선택하지 않는

몇번 클릭하면 체크효과가 사라집니다!

먼저 코드를 살펴보겠습니다:

<!DOCTYPE html>  
<html>  
    <head >  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>jquery操作checkbox方法</title>  
    <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>  
    <script type="text/javascript" >  
         //全选  
         function selectAll() {  
             //方法一:  
             $("input[name=&#39;bjjb&#39;]").attr("checked",true);  
             //方法二:  
             /**$("input[name=&#39;bjjb&#39;]").each(function(){  
                  $(this).attr("checked",true);  
             });*/  
             //获得checkbox的值和文本  
              $("#checked").html("");  
              $("#checkedText").html("");  
              $("input[name=&#39;bjjb&#39;]:checked").each(function () {  
                    $("#checked").append($(this).val()+",");  
                    //注意文本一定要元素标签如span否则next得不到值  
                    $("#checkedText").append($(this).next().text()+",");  
              });  
         }  
         //取消全选  
         function selectNone(){  
             //方法一:  
            $("input[name=&#39;bjjb&#39;]").removeAttr("checked");  
            //方法二:  
            /*$("input[name=&#39;bjjb&#39;]").each(function(){  
                  $(this).attr("checked",false);  
             });*/  
              //获得checkbox的值和文本  
              $("#checked").html("");  
              $("#checkedText").html("");  
              $("input[name=&#39;bjjb&#39;]:checked").each(function () {  
                    $("#checked").append($(this).val()+",");  
                    //注意文本一定要元素标签如span否则next得不到值  
                    $("#checkedText").append($(this).next().text()+",");  
              });  
         }  
         //反选  
         function selectInvert() {  
            $("input[name=&#39;bjjb&#39;]").each(function(index,item){  
                 if ($(this).attr("checked")) {  
                    $(this).removeAttr("checked");  
                 } else {  
                    $(this).attr("checked", true);  
                }  
            });  
         }  
     </script>  
    </head>  
    <body>  
        <form  id="" action="" method="post">  
            <div >  
                <input type="checkbox" name="bjjb" value="1"/><span>選項一</span></br>  
                <input type="checkbox" name="bjjb" value="2"/><span>選項二</span></br>   
                <input type="checkbox" name="bjjb" value="3"/><span>選項三</span></br>    
                <input type="checkbox" name="bjjb" value="4"/><span>選項四</span></br>  
                <input type="checkbox" name="bjjb" value="5"/><span>選項五</span></br>  
            </div>  
            <div style="margin-top:10px;">  
                <input type="button"   onclick="selectAll()"   value="全选" />  
                <input type="button"   onclick="selectNone()"    value="全不选" />  
                <input type="button"   onclick="selectInvert()"   value="反选" />  
            </div>  
            <div style="margin-top:10px;">  
                选中项:<div id="checked"></div>  
                选中文本:<div id="checkedText"></div>  
            </div>  
        </form>  
  </body>  
</html>

작동 효과:

첫 번째(모두 선택하려면 클릭):

두 번째(모두 선택 취소하려면 클릭):

세 번째( 모두 선택하려면 다시 클릭):

클릭했는데 체크가 되지 않습니다. 물론 문제가 있습니다.

여러 번의 검증 끝에 포럼 마스터는 다음과 같이 말했습니다. html 자체의 속성이라면 prop 메소드를 사용하는 것이 가장 좋습니다

jquery 1.8 문서를 확인한 후 prop 메소드도 같은 예를 들 때 사용됩니다:

그러면 위의 내용을 어떻게 바꾸나요?

매우 간단합니다.

attr을 prop으로 바꾸세요. 가서 시도해 보세요! !

추천 학습: "jquery 비디오 튜토리얼"

위 내용은 jquery .attr이 실패하는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.