checkbox의attr(checked)는undefined 문제를 해결합니다

1097 단어
원래 프로젝트 중의 다중 선택이 줄곧 잘 되었는데, 나중에bootstrap으로 바뀐 후에는 잘 되지 않았는데, jq가 바뀌어서 업그레이드된 것을 발견하였다
코드 검사 결과, 원래 코드
//  /  
    $("#check").click(function(){
        if($(this).attr("checked")=="checked"){
            setCheckbox(true);
        }else{
            setCheckbox(false);
        }

    });

자료를 찾아보니
원본 자료 사이트 주소
http://www.jb51.net/article/51136.htm
원래, jquery1.6 버전은 이것에 대해 수정을 했습니다. [checked 속성은 페이지를 초기화할 때 이미 초기화되어 상태의 변화에 따라 바뀌지 않습니다. 즉, checkbox가 페이지에 불러오기 완료된 것이 선택되면 영원히 checked로 돌아갑니다(저는 처음부터 선택하지 않았습니다). 만약에 선택되지 않았다면 영원히 undefined로 돌아갑니다!]jquery가 이것에 대해 수정을 한 이상 틀림없이 상응하는 더 좋은 해결 방법이 있을 것이다.prop()이 바로 이 문제를 해결하는 유리한 도구입니다!구체적인 사용법은 다음과 같다.alert($("#checkbox all").prop("checked"));이때는 트루나 false가 되는 거죠.
개편된 코드
//  /  
    $("#check").click(function(){
        var is_checked = $(this).prop("checked"); 
        if(is_checked==true){
            setCheckbox(true);
        }else{
            setCheckbox(false);
        }

    });

좋은 웹페이지 즐겨찾기