JavaScript-Jquery实现全选反选

html:

<dl>
<dt><input type="checkbox" id="checkAll" /><label>全选</label><a href="javascript:;" id="no">反选</a></dt>
    <dd>
        <p><input type="checkbox" name="item" /><label>选项(一)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(二)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(三)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(四)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(五)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(六)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(七)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(八)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(九)</label></p>
        <p><input type="checkbox" name="item" /><label>选项(十)</label></p>
    </dd>
</dl>
<center>1、切换全选/全不选文字;2、根据选中个数更新全选框状态;</center>

css:

    body,dl,dt,dd,p{margin:0;padding:0;}
    body{font-family:Tahoma;font-size:12px;}
    label,input,a{vertical-align:middle;}
    label{padding:0 10px 0 5px;}
    a{color:#09f;text-decoration:none;}
    a:hover{color:red;}
    dl{width:120px;margin:10px auto;padding:10px 5px;border:1px solid #666;border-radius:5px;background:#fafafa;}
    dt{padding-bottom:10px;border-bottom:1px solid #666;}
    dt label{font-weight:700;}
    p{margin-top:10px;}

jquery:

$(document).ready(function () {
    console.log($('input[name="item"]'));
    $('#checkAll').click(function () {
        if ($(this).is(':checked')) {
            $(":checkbox").each(function () {
                $(this).prop('checked', true);
            })
        } else {
            $(':checkbox').each(function () {
                $(this).removeAttr('checked');
            })
        }
    })
    $('#no').click(function () {
        $('input[name="item"]').each(function () {
            if ($(this).is(':checked')) {
                $(this).removeAttr('checked');
            } else {
                $(this).prop('checked', true);
            }
        })
    })
    $('input[name="item"]').click(function () {
        var current = parseInt($(':checked').length);
        var all = parseInt($('input[name="item"]').length);
        console.log("current:" + current);
        console.log("all:" + all);
        if (current != all) {
            $('#checkAll').removeAttr('checked');
        } else {
            $('#checkAll').prop('checked', true);
        }
    })
})

 

posted @ 2018-03-29 17:12  MiraclesGG  阅读(189)  评论(0)    收藏  举报