第028篇:jQuery

2019-12-12  本文已影响0人  yydafx
开始之前
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>
上一篇 下一篇

猜你喜欢

热点阅读