美文网首页
第028篇:jQuery

第028篇:jQuery

作者: yydafx | 来源:发表于2019-12-12 18:54 被阅读0次
    开始之前
    1.什么是jQuery
    jQuery本质就是一个用js封装的库,里面封装了很多方法和对象让网页开发更简单
    jQuery是通过jQuery对象来提供功能
    
    2.怎么导入jQuery
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    
    3.怎么使用jQuery
    1) 在jQuery中$可以看成是jQuery类, $()就是jQuery对象;
    2) 可以通过: $(节点) - 将js中的节点转换成jQuery对象;
    3) jQuery对象的本质就是容器型数据类型的数据,容器中的元素是节点; 
       直接操作jQuery对象会作用于这个对象中所有节点对应的元素
    

    1、节点操作

    1)创建节点

    $('HTML创建标签的语法')

    2)添加节点

    节点对象1.append(节点对象2):在节点对象1的最后添加节点对象2(对象都是jQuery对象)
    节点对象1.prepend(节点对象2):在节点对象1的最前面添加节点对象2
    节点对象1.before(节点对象2):在节点对象1的前面插入节点对象2
    节点对象1.after(节点对象2):在节点对象1的后面插入节点对象2

    3)删除节点

    节点对象.remove():删除指定节点对象
    节点对象.empty():删除节点对象中所有的子节点

    4)拷贝节点

    节点对象.clone()

    <div id="div1">
        <h1>我是标题1</h1>
    
        <h1>我是标题2</h1>
    </div>
    <!----------1.创建节点: $('HTML创建标签的语法')------------>
    <script type="text/javascript">
        //创建p标签
        var pNodes = $('<p>我是段落1</p>')
        console.log(pNodes)
    
        var divNodes = $('<div><a>我是超链接1</a><img title="熊" src="img/bear.png"></div>')
    
    </script>
    
    <!---------------2.添加节点-------------------->
    <script type="text/javascript">
        //1)节点对象1.append(节点对象2)   -   在节点对象1的最后添加节点对象2(对象都是jQuery对象)
        $('#div1').append(pNodes)
    
        //2)节点对象1.prepend(节点对象2)  -   在节点对象1的最前面添加节点对象2
        $('#div1').prepend(divNodes)
    
        //3)节点对象1.before(节点对象2)    -   在节点对象1的前面插入节点对象2
        $('#div1 h1:last').before($('<input placeholder="请输入账号"/>'))
    
        //4)节点对象1.after(节点对象2)     -   在节点对象1的后面插入节点对象2
        $('#div1 h1:first').after($('<input id="in1" type="radio" /><label for="in1">男</label>'))
    </script>
    
    
    <!----------------3.删除节点-------------------->
    <hr />
    <div id="div2">
        <p>我是段落2</p>
        <a href="">我是超链接2</a>
        <img src="img/hat.png"/>
        <p>我是段落3</p>
    </div>
    <script type="text/javascript">
        //1) 节点对象.remove()   -  删除指定节点对象
        $('#div2 a').remove()
        
    //          $('#div2 p').remove()
    //          $('#div2 p').append($('<input type="color"/>'))
    
        //2)节点对象.empty()   -  删除节点对象中所有的子节点
        $('#div2').empty()
        
    </script>
    
    <!-----------------4.拷贝节点------------------>
    <hr />
    <div id="div3" style="background-color: seagreen; width: 300px; height: 200px;">
        <p>我是段落4</p>
        <img src="img/bucket.png"/>
    </div>
    
    <script type="text/javascript">
        $('#div3').on('click', function(){
            alert('你好!')
        })
        //1)节点对象.clone()/节点对象.clone(false)  -  标签深拷贝,jQuery绑定的事件不拷贝
        //   节点对象.clone(true)     -    标签深拷贝,jQuery绑定的事件也拷贝
        var newDiv3s = $('#div3').clone()
        $('#div3').after(newDiv3s)
        
        //补充: js对象和jQuery对象的相互转换
        //jQuery对象 转 js对象   -  取出jQuery对象容器中的元素
        //js对象 转 jQuery对象   -  $(js对象)
        var div3Node =  $('#div3')[0].cloneNode()
        $('#div3').before($(div3Node))
        
    </script>
    

    2、属性操作

    1)特殊属性

    text(),html()/text('标签内容'),html('标签内容'):获取/修改标签内容
    val()/val('属性值'):获取/修改value属性
    addClass(class名):添加class属性
    removeClass(class名):移除class属性

    2)样式属性

    css(样式属性名):获取样式的指点属性值
    css(样式属性名,样式属性值):设置指定样式的值
    css(对象):同时设置多个属性值 --> 值需要加引号,用逗号隔开(属性名加引号用css命名方式,不加引号需要驼峰式命名)

    3)普通属性

    attr(属性名):获取指定属性值
    attr(属性名, 值):修改指定属性的值

    <p id="p1">我是段落1</p>
    <input type="" name="" id="" value="张三" />
    <p id="p2">我是段落2</p>
    <p id="p3">我是段落3</p>
    <!------------1.特殊属性-------------->
    <script type="text/javascript">
        //1)标签内容: text(), html()
        //获取标签内容
        console.log($('#p1').text(), $('#p1').html())
        
        //修改标签内容
        $('#p1').text('我是jQuery')
        $('#p1').html('1.<a href="">我是jQuery</a>')
        
        //2)value属性: val()
        console.log($('input').val())
        $('input').val('李四')
        
        //3)class属性
        //addClass(class值)  -  添加class
        $('input').addClass('c1')
        $('input').addClass('c2')
        
        //removeClass(class值)  - 移除指定class
        $('input').removeClass('c1')
    </script>
    
    <!------------2.样式属性-------------->
    <script type="text/javascript">
        //1)css(样式属性名)   -   获取样式指定属性的值
        //  css(样式属性名,样式属性值)  -  设置指定样式属性的值
        //注意: 这儿的属性名和css属性名一致
        $('#p2').css('color', 'red')
        $('#p2').css('font-size', '30px')
        console.log($('#p2').css('color'))
        
        //2)css(对象)   -  同时设置多个属性
        /*
         css({
            属性名1: 值1,
            属性名2: 值2,
            属性名3: 值3,
            ....
         })
         
         
         注意: 属性名不加引号是css属性名采用驼峰式命名; 加引号还是可以用css属性名
         */
        $('#p3').css({
            'color':'red',
            'font-size': '30px',
            'backgroundColor': 'yellow'
        })
        
        
    </script>
    
    <img src="img/anchor.png"/>
    <!------------3.普通属性-------------->
    <script type="text/javascript">
        //1)attr(属性名)  -  获取指定属性值
        //  attr(属性名, 值)   -  修改指定属性的值
        console.log($('img').attr('src'))
        $('img').attr('src', 'img/bear.png')
        $('img').attr('title', '熊')
    </script>
    

    3、事件绑定

    这儿的this是事件源;但是是js对象
    节点对象.on(事件名, 事件驱动程序):直接给指定的节点绑定对象
    节点对象.on(事件名, 选择器, 事件驱动程序):通过父标签给选择器选中的子标签绑定事件

    <div id="div1">
        <button>按钮1</button>
        <button>按钮2</button>
        <button>按钮3</button>
    </div>
    <button id="addBtn">添加</button>
    
    <hr />
    <div id="div2" style="background-color: yellow;">
        <!--<p>我是段落1</p>-->
        <button>按钮4</button>
        <button>按钮5</button>
        <!--<p>我是段落2</p>-->
        <button>按钮6</button>
    </div>
    <button id="addBtn2">添加</button>
    <!---------1.事件绑定-------------->
    <script type="text/javascript">
        //1)节点对象.on(事件名,事件驱动程序)  -  直接给指定的节点绑定事件
        //注意: 事件名要去掉on
        $('#div1>button').on('click', function(evt){
            //注意: 这儿的this是事件源,但是是js的对象
            console.log(this)
            
            $(this).css('color', 'red')
            
            //事件捕获:和js一样
            evt.stopPropagation()
        })
        
        console.log($('button').text())    // 按钮1按钮2按钮3
        
        
        $('#addBtn').on('click', function(){
            $('#div1').append($('<button>新按钮</button>'))
        })
        
        
        //2)节点对象.on(事件名,选择器,事件驱动程序)  -   通过父标签给选择器选中的子标签绑定事件
        $('#div2').on('click', 'button',function(){
            alert('按钮点击')
            console.log(this)
                
        })
        
        $('#addBtn2').on('click', function(){
            $('#div2').append($('<button>新按钮</button>'))
        })
        
        
        
    </script>
    

    4、Ajax基本使用

    $.ajax({
        url:数据接口地址,
        type:请求方式(get/post),
        data:请求数据/参数(客户端传递给服务器的数据, 值是对象),
        success:请求成功的回调函数(函数),
        error:请求失败的回调函数
     })
    
            
    <div id="box">
        
    </div>
    
    <script type="text/javascript">
        //1.ajax
        /*
         $.ajax({
            url:数据接口地址,
            type:请求方式(get/post),
            data:请求数据/参数(客户端传递给服务器的数据, 值是对象),
            success:请求成功的回调函数(函数),
            error:请求失败的回调函数
         })
         */
        $.ajax({
            type:"get",
            url:"http://rap2api.taobao.org/app/mock/233723/shopping",
            data:{username:'小明', password:'123456'},
            success:function(result){
                console.log('请求成功!')
                console.log(result)
                for(var goods of result.data){
                    var name = goods.name
                    $('#box').append($('<p>'+name+'</p>'))
                    $('#box').append($('<img src="'+goods.goods_image+'" />'))
                    
                }
            },
            error: function(){
                console.log('请求失败')
            }
        });
        
        $.get("http://rap2api.taobao.org/app/mock/233723/shopping", {username:'小明', password:'123456'}, function(result){
            
            console.log('=====:', result)
        })
    
        
        
    </script>
    

    相关文章

      网友评论

          本文标题:第028篇:jQuery

          本文链接:https://www.haomeiwen.com/subject/jsbtnctx.html