请教一下我写的判断checkbook是否被选中错了吗?为啥输出的东西不正确

 var ha = $("input[type='checkbox']").is(':checked');
            if (ha == false) {
                alert("请至少选择一行数据");
            }else{
            var table = document.getElementById("ta");
            var _list = "[";
            for (var i = 1; i < table.rows.length; i++) {
                if(table.rows[i].checked){
                _list += '{"YYBH":"'+table.rows[i].cells[1].innerHTML+'"},'
                }
            } 
            _list=_list.substr(0,_list.length-1);
            _list +="]";
            console.log(_list);
            }

console.log(_list) 输出是]

每一行里面都有一个checkbox,但你循环的时候获取到的是tr,tr没有checked属性,自然获取不到值。应该是要获取tr里面的input。
if(table.rows[i].getElementsByTagName("input")[0].checked){
_list += '{"YYBH":"'+table.rows[i].cells[1].innerHTML+'"},'
}

换成var ha = $("input[type='checkbox']").checked;试试

is(':checked') 就一被选中 程序就结束。后面得加function(){}