jQuery是一个兼容多浏览器的JavaScript库,提供一些可直接调用的方法,这些方法就是对JavaScript进行了封装。

这些方法主要分为两大类:查找和操作

介绍几个目前了解的(文章中的元素和标签是一个意思):

查找:

1、选择器:用来查找页面元素

2、筛选:用来对查找到的元素进行过滤或进行关系查找(找亲戚)

操作:

3、属性:获取或添加元素的属性

4、CSS:修改元素的样式和属性


具体使用方式用例子来说明:

1、选择器

例子说明:由于此例只是为了说明各种查找方法的使用,所以看代码即可,没有运行的必要。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="d1">
        <span>span_test</span>
        <p>p_test</p>
        <p class="c1">p_class_test</p>
        <input name="i1" type="checkbox"/>
        <input type="text"/>
        <ul>
            <li>list item 1</li>
            <li>list item 2</li>
            <li>list item 3</li>
        </ul>
    </div>

    <script src="/jquery-2.2.0.js" type="text/javascript"></script> //加载jQuery文件
    <script type="text/javascript">
        //console.log() 方法的作用是把传入的值在浏览器的console控制台中打印出来
        console.log($('#d1'));                  //查找id为d1的元素
        console.log($('span'));                 //查找元素名称是span的元素
        console.log($('.c1'));                  //查找class=c1(应用了c1类)的元素
        console.log($('div,span,p.c1'));        //查找元素名称是div、sapn和应用了c1类的p标签
        console.log($('div input'));            //查找div下的input元素
        console.log($('li:first'));             //查找所有li元素并只取第一个
        console.log($('p:contains("test")'));   //查找所有包含文本test的p元素
        console.log($('input[name="i1"]'));     //查找所有input元素中name=i1的元素
        console.log($('input:text'));           //查找所有input元素中类型是text的元素
        console.log($('input:checked'));        //查找所有input元素中属性是checked的元素
    </script>
</body>
</html>

2、筛选

例子说明:此例需要一边运行看结果,一边结合代码来看。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格修改</title>
    <style>
        .modal{
            position: fixed;
            left: 50%;
            top: 50%;
            width: 400px;
            height: 300px;
            background-color: #dddddd;
            margin-left: -200px;
            margin-top: -150px;
        }
        .hidden{
            display: none;
        }
    </style>
</head>
<body>
    <div id="dialog" class="modal hidden">  <!--模态对话框,默认是隐藏的-->
        <div style="margin: 10px">
            <form action="" method="get">
                <p>HOST:<input type="text" id="hostname"></p>
                <p>IP:<input type="text" id="ip"></p>
                <p>PORT:<input type="text" id="port"></p>
                <input type="submit" οnclick="return GetValue();" value="提交">
                <input type="button" οnclick="Cancel();" value="取消">
            </form>
        </div>
    </div>

    <div>
        <table border="1">
            <thead>
                <tr>
                    <th>主机名</th>
                    <th>IP</th>
                    <th>端口</th>
                </tr>
            </thead>
            <tr>
                <td>www</td>
                <td>1.1.1.1</td>
                <td>80</td>
                <td><input type="button" οnclick="get_prev(this);" value="编辑"></td>
            </tr>
            <tr>
                <td>bbs</td>
                <td>2.2.2.2</td>
                <td>80</td>
                <td><input type="button" οnclick="get_prev(this);" value="编辑"></td>
            </tr>
        </table>
    </div>


    <script type="text/javascript" src="/jquery-2.2.0.js"></script>
    <script type="text/javascript">
        function get_prev(arg){
            var list = [];  //定义一个空数组
            var c = $(arg).parent().siblings();   //找到当前标签的父标签的所有兄弟标签(找叔叔),得到一个数组c
            $.each(c,function(i){   //循环得到的数组c,对每个值都执行以下函数代码块
                var item = $(arg).parent().siblings()[i]; //取出数组c中的每个元素
                var text = $(item).text();  //得到元素的文本内容
                list.push(text);    //把得到的值写入数组中
            });
    
            var newlist = list.reverse();   //反转数组得到一个新数组
            //把数组中的值依次赋予模态对话框中
            $('#hostname').val(newlist[0]);
            $('#ip').val(newlist[1]);
            $('#port').val(newlist[2]);
    
            //去除模态对话框的隐藏样式(这是属性类别中方法)
            $('#dialog').removeClass('hidden');
        }

        function Cancel(){
            //找到模态对话框并增加新样式,实现隐藏(这是属性类别中方法)
            $('#dialog').addClass('hidden');
        }
    
        function GetValue(){
            var ret = true; //定义一个函数返回值
            var t = $('#dialog').find(':text'); //找到id为dialog标签下面的所有input类型为text的元素
            $(t).each(function(){   //循环找到的数组(列表)
                var value = $(this).val();  //获取循环到的元素的值(注意是值,不是文本内容)
                if(value.trim().length == 0){   //去除获取到值的空格后判断是否为空
                    $(this).css('border-color','red');  //若为空,则改变Input的样式
                    ret = false;
                }
            });
            return ret;    //函数返回值,如果是false,则不允许提交
        }

    </script>
</body>
</html>

3、属性

例子说明:用经典的全选按钮来说明用法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>全选按钮</title>
</head>
<body>
    <div>
        <input type="button" οnclick="Select();" value="全选">
        <input type="button" οnclick="Reverse();" value="反选">
        <input type="button" οnclick="Cancel();" value="不选">
        <table border="1" id="tb1">
            <thead></thead>
            <tbody>
                <tr>
                    <td><input type="checkbox"><b>1</b></td>
                </tr>
                <tr>
                    <td><input type="checkbox"><b>2</b></td>
                </tr>
                <tr>
                    <td><input type="checkbox"><b>3</b></td>
                </tr>
            </tbody>
        </table>
    </div>

    <script type="text/javascript" src="/jquery-2.2.0.js"></script>
    <script type="text/javascript">
        function Select(){
            //$('#tb1') 找到id为tb1的元素
            //.find(':checkbox')    该元素下所有类型为checkbox的input元素
            //.prop('checked',true) 并添加属性checked=true
            $('#tb1').find(':checkbox').prop('checked',true);
        }

        function Reverse(){
            //反选函数的作用是:选中的变成不选中,不选中的变成选中
            $('#tb1').find(':checkbox').each(function(){    //找到id为tb1标签下所有的类型为checkbox的元素进行循环
                var content = $(this).next();   //查找被循环元素的下一个元素
                console.log($(content).text()); //获取该元素的文本内容
                if($(this).prop('checked')){    //判断是否已经选中:this代表的就是正在被循环的元素,获取其checked属性的值
                    $(this).prop('checked',false);          //为该元素添加属性
                    $(content).text('选中的变成不选中');    //修改该元素的文本内容
                }else{
                    $(this).prop('checked',true);
                    $(content).text('不选中的变成选中');
                }
            })
        }

        function Cancel(){
            $('#tb1').find(':checkbox').prop('checked',false);  //添加属性checked=false,也就是不选中
        }
    </script>
</body>
</html>

4、CSS

例子说明:使用大多数网站都有用到的“回到顶部”按钮来举例。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>这是顶部</h1><input type="button" style="position: fixed;right: 30px;top: 30px" οnclick="GoBottom();"  value="返回底部"/>
    <div id="d1" style="height: 2000px;background-color: blue"></div>
    <h1>这是底部</h1><input type="button" style="position: fixed;right: 30px;bottom: 30px" οnclick="GoTop();"  value="返回顶部"/>

    <script src="/jquery-2.2.0.js" type="text/javascript"></script>
    <script type="text/javascript">
        /*
        scrollTop用法:
        读取:$("选择器").scrollTop()     //获取当前滚动条距离选择器顶部距离
        设置:$("选择器").scrollTop(1000) //设置滚动条距离选择器顶部距离为1000px;
        其他知识点:
        $(window).height();     //获取当前浏览器可视部分的高度,也就是说在浏览器窗口改变大小时,这个值也会改变;
        $(document).height();   //获取整个页面的高度(包含不可视部分),这个值是固定的,不会随浏览器窗口大小而改变;
         */
         
        function GoTop(){
            $(document).scrollTop(0);     //设置滚动条距离当前页面顶部的距离为0,也就达到返回顶部的效果
            var bcolor = $('#d1').css('background-color');  //获取id为d1的元素的background-color样式属性的值
            console.log(bcolor);
            $('#d1').css('background-color','blue');       //设定id为d1的元素的background-color样式属性的值为green
        }

        function GoBottom(){
            var dpx = $(document).height();     //获取当前页面的高度
            var wpx = $(window).height();       //获取当前浏览器窗口的高度
            console.log(dpx);
            console.log(wpx);
            $(window).scrollTop(dpx);           //设置滚动条距离当前页面顶部的距离为当前页面的高度,也就达到返回底部的效果
            $('#d1').css('background-color','green');
        }
    </script>
</body>
</html>


https://blog.51cto.com/rmeos/1744418