jQuery

蓝咒 提交于 2020-03-17 02:43:51

一. jQuery

1.模块   《=》类库 ,jQuery----DOM的一个类库。

2.查找元素

    ---DOM:

 

    ---jQuery:

        ---选择器:

 

        ---筛选:

注: 1.    jQuery版本:1.x 兼容性高(推荐使用1.12);2.x;3.x

              jQuery安装:1)jquery.com 官网下载;  2)把.js文件放到HTML同级目录下即可。

         

           2.引用:

             

                  在HTML中引用CSS样式时,用link链接到同级目录下的css文件即可;

                也可以在HTML中:<style><style>编写样式;(两种方式)

 

                在HTML中引用 .js 文件时,用script 引用同级目录下的 .js 文件;

                也可以在HTML中:<script><script>编写代码;(两种方式)

                注:<style>一般放在头部,<script>一般放在尾部

             3.调用jQuery中的方法有两种方式: jQuery.方法名;

                                                               $.方法名。

 

3.操作元素

    3.1获取标签:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="i1">123</div>
    <script scr="jquery-1.12.4.js"></script>
    <script>
        $("#i1")
        // 相当于document.getElementById("i1")
    </script>
</body>
</html>

 

问:DOM中通过document.getElementById("i1")获取的标签与jQuery中用  $("#i1") 获取的标签,两种方式有什么区别?

答:jQuery中其实封装是DOM的方式去获取的标签,$("#i1") [0]获取的内容和document.getElementById("i1")获取的内容是一模一样的(可以通过这个方式互相转换)。由此看来$("#i1")获取的内容要比document.getElementById("i1")获取的内容多.

      转换:jQuery对象------->DOM 对象:$("#i1") [0];

                DOM 对象--------->jQuery对象  :d  = document.getElementById("i1")

                                                                   $(d);

问:转换有什么作用?

答:当jQuery中封装的内容没有我们想要的时候,可以把jQuery对象转换为DOM 对象,然后我们再编写我们需要的原生态的代码。

   

    3.2  jQuery选择器

        作用:直接找到某个或某类标签  

         1)id

              $("#id")

         2) class

              <div class='c1'><div>

             $(".c1")

         3) 标签        

   <div class="c1">
        <a>e</a>
        <a>f</a>
    </div>
   <div class="c2">
        <a>r</a>
    </div>

                $("a"):即可找到所有的a标签。

          4)组合选择器

              $("a,.c2");找到所有a标签和c2。

          5)层级选择器

               $("#i10 a"):id=10标签下的a标签。(空格:子子孙孙)

              $("#i10>a"):id=10标签下的儿子a标签。(> :儿子辈)

           6)基本选择器

              :first

              :last

              :eq()

              

              7) 属性

            

    <div xiaolaizi="123">
        <a>e</a>
        <a>f</a>
    </div>
    <div xiaolaizi="456">
        <a>r</a>
    </div>

 

 

 

              $("[xiaolaizi]")  :具有xiaolaizi属性的所有标签;

              $('[xiaolaizi="123"]')   : xiaolaizi属性值3为123的标签;

          8)表单选择器

 

    <input type="text" />
    <input type="file" />
    <input type="password" />

 

                 $('input[type="text"]'):属性的方法,用表单的方法为: $(:"text")

 

 可查看:http://jquery.cuishifeng.cn/  jQuery中文文档

      

        3.3示例1

 

<!--全选,反选,取消操作实例-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <input type="button" value="全选" onclick="checkAll();" />
    <input type="button" value="反选" onclick="reverseAll();"/>
    <input type="button" value="取消" onclick="cancelAll();"/>

    <table border="1">
        <thead>
            <tr>
                <th>选项</th>
                <th>IP</th>
                <th>PORT</th>
            </tr>
        </thead>
        <tbody id="tb">
            <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>
<script src="jquery-1.12.4.js"></script>
<script>
    function checkAll() {
        $('#tb:checkbox').prop('checked',true)
    }

    function cancelAll() {
        $('#tb:checkbox').prop('checked',false)
    }

    function reverseAll() {
        //这里的each会循环每一个checkbox,而不用再去写for循环,这是jquery帮我们写好的。
        $(':checkbox').each(function (k) {
            //k :当前索引
            //console.log(k)
            //this,代指当前循环的每一个元素,且是DOM对象。是什么对象可以根据输出的形式去判断,用[ ]括起来的是jquery对象,< >的是DOM对象;
            //console.log(this);
            //反选,首先判断是否已经被选中

            //DOM方法
            // if(this.checked){
            //     this.checked = false;
            // }
            // else{
            //     this.checked = true;
            // }

            //jquery方法
            if($(this).prop('checked')){
                //prop:一个参数是获取值,针对checked和selected做操作。
                $(this).prop('checked', false);
                //prop :两个参数是设置值;
            }else{
                $(this).prop('checked', true);
            }

            //js中的三元运算方法
            //var v = 条件? 真值:假值
            var v = $(this).prop('checked')? false:true;
            $(this).prop('checked',v);
        })
    }
</script>
</body>
</html>

 

 

 

注:DOM中需要写for循环,而jquery中内置循环;

   

        3.4 示例2——Tab菜单

筛选器:(http://jquery.cuishifeng.cn/)$(this).next()    下一级$(this).prev()    上一级$(this).parent()    父级$(this).children()$(this).siblings()  同级
$('#i1).find('#i1') 子子孙孙中查找  
 
添加样式和移除样式:.addClass('hide').removeClass('hide')
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .header{
            background-color:burlywood;
            color: blue;
        }
        .content{
            min-height: 50px;
        }
        .hide{
            display: none;
        }
    </style>
</head>
<body>
     <div style="height: 400px;width: 200px;border:1px solid black ">
         <div class="item">
             <div class="header">标题1</div>
             <div class="content">内容1</div>
         </div>
          <div class="item">
             <div class="header">标题2</div>
             <div class="content hide">内容2</div>
         </div>
         <div class="item">
             <div class="header">标题3</div>
             <div class="content hide">内容3</div>
         </div>
     </div>
     <!--//标题太多,一个一个去绑定事件不合适,这里在jQuery中绑定事件-->
<script src="jquery-1.12.4.js"></script>
<script>
    $(".header").click(function () {
        //匿名函数,当前点击的标签

        //console.log(this);
        //看一下格式 ,看获取到的是DOM对象还是jQuery对象

        //$(this)
        //DOm 对象转换为jQuery对象

        //筛选器
        $(this).next().removeClass('hide');
        $(this).parent().siblings().find('.content').addClass('hide');
        //上面两句话可以用一行代码搞定,
        //jQuery中支持链式编程
        $(this).next().removeClass('hide').parent().siblings().find('.content').addClass('hide');
    })
</script>

</body>
</html>

    模态编程框中

  3.5 文本操作

         $(  ).text( )     #获取文本内容;

           $( ).text(" ")   #设置文本内容;  

            $(  ).html( )     #获取标签内容;

            $( ).html(" ")   #设置标签内容;

            $( ).val(" ")  

            $( ).val(" ")  

3.6 样式操作

        addClass

        removeClass

        toggleClass

3.7 属性(标签)操作

        $(..).attr()   :专门用于做标签上的自定义属性;

                              : 传一个参数,是获取属性;传两个参数,是添加属性;

        $(..)removeAttr( ): 删除属性;

 

        $(..).prop():专门用于checkbox,radio ;checkbox用attr()版本不同时会出现bug;

                              :传一个参数是获取值,传两个参数是修改或者添加值;

       PS:  index 获取索引位置。

3.8  CSS 处理 

        $('t1').css( '样式名' ,'样式值' );

          点赞:

                ----$('t1').append():

                ----setInterval :定时器;

3.9 位置  

        $(window).scrolltop()    :没有参数,获取值;

        $(window).scrolltop(0)  :有参数,设置值(移动到设置的位置);window窗口,为对象,且只有一个。

                         scrollLeft()   :

                         offset().top    :指定标签在html中的坐标 ;

                         offset().left    :

                         position()     : 指定的标签相对父标签的坐标。

3.10 尺寸

        height()

        innerHeight()

        outerHeight()

        outerHeight(true)

        // 纯高度,边框,外边距,内边距

 

3.10 阻止事件发生:

        return false;

   

ps: 当页面框架加载完成之后,自动执行(自执行函数)。

     $(function)(){

}

 

 

 

 

 

            

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!