image

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <table border="1">
        <thead>
            <tr>
                <th>选项</th>
                <th>ip</th>
                <th>port</th>
            </tr>
        </thead>
        <tbody id="i1">
            <tr >
                <td><input type="checkbox"></td>
                <td>1.1.1.1</td>
                <td>80</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>1.1.1.1</td>
                <td>80</td>
            </tr>
                    <tr>
                <td><input type="checkbox"></td>
                <td>1.1.1.1</td>
                <td>80</td>
            </tr>
                    <tr>
                <td><input type="checkbox"></td>
                <td>1.1.1.1</td>
                <td>80</td>
            </tr>
        </tbody>
    </table>
    <input type="button" value="all" onclick="checkAll()">
    <input type="button" value="rev" onclick="reverse()">
    <input type="button" value="can" onclick="checkNone()">
</body>
<script src="jquery-3.2.1.js">
</script>
<script>
    function checkAll () {
        $('#i1 input').prop('checked', true)
//        $(':checkbox').prop('checked', true)
//        实际上, 这两条都是一样的.$带出的JQuery对象只能是列表, 且是标签列表.
    }
    function checkNone () {
        $('#i1 input').prop('checked',false)
    }
//    function reverse() {
//        $('#i1 input').each(function (k) {
//            console.log(k,this);
//        })
    function reverse() {
    $('#i1 input').each(function () {
        //三元运算, 实现反选, 选中的不选, 没选的选中
        var v = (this).prop('checked')?false:true;
        $(this).prop('checked',v)
    })
    }
</script>
</html>

在反选里面, 我们不需要用到for循环, 而用封装好的.each(function(k){})

.each里的函数的参数k, 实际上是下标(索引序号)

function reverse() {
        $('#i1 input').each(function (k) {
            console.log(k,this);
        })

输出的结果包含:

k  :  0 1 2 3

this: 所有inputs里面的每一个需要循环的input子标签, 而所有的this实际上都是DOM对象而不是JQ对象

image

如果要把this 转为JQ对象, 需要用$(this)包起来

三元运算:

var v = 条件? 真值:假值

学术或足球分析交流微信:chinamaths(进讨论组)

Don't hesitate to comment or add a like    -    Yours Bill
Bill's技术博客 足球分析博客 足彩数据视频
比尔极客日志_博客园 比尔足球数据_网易博客 足彩TV_优酷
比尔极客日志_CSDN 比尔足球数据_新浪博客 足彩TV_搜狐视频
比尔极客日志_51CTO 比尔足球数据_新浪微博 足彩TV_喜马拉雅
比尔极客日志_开源中国 比尔足球数据_官方URL 足彩TV_56视频
比尔极客日志_GitHub 比尔足球数据_头条号 微信号:zucai99
posted on 2017-07-14 15:53  比尔足球数据分析  阅读(647)  评论(0编辑  收藏  举报