我爱编程

jQuery动画与ajax

2017-07-28  本文已影响0人  山门龙龙

1.jQuery 中, $(document).ready()是什么意思?

跟$(handle)一样,都是document加载完之后执行里面的函数。使用该方法,不论该方法所在的script标签在html中位于哪个位置,都会在DOM加载完之后再执行。

2.$node.html()和$node.text()的区别?

3.$.extend 的作用和用法?

将两个或者多个对象合并到一个对象
jQuery.extend( [deep ], target, object1 [, objectN ] )
deep 如果为true,就是深拷贝
target 被加载的对象
object1[, object] 加载的对象

4. jQuery 的链式调用是什么?

jQuery调用操作方法之后会返回一个该方法处理过后的jQuery对象,所以他可以在一条语句上多次调用各种方法,就像一条锁链一样,所以这就是jQuery的链式调用,例:

$('div').removeClass()
          .addClass()
          .animate()

5.jQuery 中 data 函数的作用

在匹配的元素上存储任意数据。例:

<body>
    <div>
        <span></span>
    </div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>

    /*在div上存一个数据,该数据是一个对象*/
    $('div').data('key',{           
        name: 'jinlong',
        age: '26'
    });

    /*使用在div上存放的数据*/
    $('span').text('我叫' + $('div').data('key').name + ',今年'+$('div').data('key').age+'');     
</script>

6.写出以下功能对应的 jQuery 方法:

<style>
    div{
        width: 100px;
        height: 100px;
        color: black;
        font-size: 20px;
    }
</style>
<body>
    <div class="ct">123</div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
   $('div').css({
       'color': 'red',
       'font-size': '14px'
   });
</script>
<body>
    <div class="ct">
        <span>123</span>
        <span>456</span>
        <span>789</span>
    </div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
    $('div span').each(function () {
        var a = $(this).text($(this).text() + $(this).text());
    })
</script>
<body>
    <div class="ct">
        <span>123</span>
        <span class="item">456</span>
        <span class="panel">789</span>
    </div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
    console.log($('div span').length);
</script>

题目7:用jQuery实现以下操作

<style>
    button{
        padding: 10px 15px;
    }
</style>
<body>
<button>btn变色</button>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
    $('button').on('click',function () {
        $(this).css({
            background: 'red'
        });
        setTimeout(function (){
            console.log(2)
            $('button').css({
                background: 'blue'
            })
        },2000)
    });
</script>
<style>
div{
    height: 2000px;
}
</style>
<body>
<div></div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
    setInterval(function () {
        console.log($('body').scrollTop())
    },1000)
</script>
<style>
    body{
        background: green;
    }
    div{
        width: 100px;
        height: 100px;
        background: blue;
    }
</style>
<body>
<div></div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
    $('div').on('mouseenter',function () {
        $(this).css({
            background: 'red'
        })
    })
    $('div').on('mouseleave',function () {
        $(this).css({
            background: 'white'
        })
    })
</script>
<style>
    input{
        outline-color: transparent;
        border: 1px solid black;
    }
</style>
<body>
<input type="text">
<div></div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
    $('input').on('focus',function () {
        $(this).css({
            border: '1px solid blue'
        })
    })
    $('input').on('change',function () {
        $(this).val($(this).val().toUpperCase());
    })
    $('input').on('blur',function () {
        $(this).css({
            border: '1px solid black'
        })
        console.log($(this).val());
    })
</script>
<body>
<select name="select" id="select">
    <option value="opt1">111</option>
    <option value="opt2">222</option>
    <option value="opt3">333</option>
</select>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
    $('select').on('change',function () {
        console.log($('select option:selected').text())
    })
</script>

8.用 jQuery ajax 实现如下效果。`当点击加载更多会加载数据展示到页面

前端代码:

<!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>
<style>
    ul{
        padding: 0;
    }
    li{
        list-style: none;
        border: 1px solid #ccc;
        padding: 10px;
        margin-top: 20px;
        cursor: pointer;
    }
    li:hover{
        background: green;
    }
    button{
        display: block;
        border-radius: 3px;
        margin: 10px auto;
        padding: 10px;
        background: white;
        color: #E27272;
        border: 1px solid #E27272;
        outline-color: transparent;
        font-size: 16px;
        cursor: pointer;
    }
</style>
<body>
<ul>
    <li>内容1</li>
    <li>内容2</li>
</ul>
<button>加载更多</button>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
    function appendHtml(news){
        console.log(news);
        var html = '';
        $(news).each(function () {
            html += '<li>'+this+'</li>';
        });
        $('ul').append(html);
    }
    $('button').on('click',function () {
        var index = $('ul li').length + 1;
        $.ajax({
            url: '/loadMore',
            type: 'get',
            data: {
                index: index,
                length: '5'
            }
        }).done(function (ret) {
            appendHtml(ret);
        }).fail(function () {
            console.log('系统异常');
        }).always(function () {
            console.log('发送请求');
        })
    })
</script>
</body>
</html>

后端代码:

router.get('/loadMore',function (req,res) {
    var index = req.query.index;
    var length = req.query.length;
    var data = [];
    for(var i=0;i<length;i++){
        data.push('内容' + (parseInt(index) + i));
    }
    res.send(data);
});
上一篇下一篇

猜你喜欢

热点阅读