美文网首页我爱编程
jQuery动画与ajax

jQuery动画与ajax

作者: 山门龙龙 | 来源:发表于2017-07-28 05:05 被阅读0次

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

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

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

  • $node.html()是获取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 方法:

  • 给元素 $node 添加 class active,给元素 $noed 删除 class active
    $node.addClass() , $node.removeClass()

  • 展示元素$node, 隐藏元素$node
    $node.show() , $node.hide()

  • 获取元素$node 的 属性: id、src、title, 修改以上属性
    $node.attr('attr','value') , attr可以是标签内的任意属性,id 、src、title都可以。

  • 给$node 添加自定义属性data-src
    $node.attr('data-src','')

  • 在$ct 内部最开头添加元素$node
    $ct.prepend('$node');

  • 在$ct 内部最末尾添加元素$node
    $ct.append('$node')

  • 删除$node
    $ct.remove()

  • 把$ct里内容清空
    $ct.empty();

  • 在$ct 里设置 html <div class="btn"></div>
    $ct.html('<div class="btn"></div>');

  • 获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
    $('.ct').height() 内容高度
    $('.ct').innerHeight() 内容高度 + padding
    $('.ct').outerHeight() 内容高度 + padding + border
    $('.ct').outerHeight() 内容高度 + padding + border + margin
    ('.ct').width() 内容宽度
    $('.ct').innerWidth() 内容宽度 + padding
    $('.ct').outerWidth() 内容宽度 + padding + border
    $('.ct').outerWidth(true) 内容宽度 + padding + border + margin

  • 获取窗口滚动条垂直滚动距离

    • $('body'),scrollTop()
      获取body滚动条的垂直滚动距离
    • $('div'),scrollTop()
      获取div滚动条的垂直滚动距离,如果div没有滚动条,则滚动条高度为0
  • 获取$node 到根节点水平、垂直偏移距离
    $node.offset()
    返回一个对象,对象里面包含到根节点水平、垂直偏移距离

  • 修改$node 的样式,字体颜色设置红色,字体大小设置14px

<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>
  • 从$ct 里查找 class 为 .item的子元素
    $('.ct').find('.item')

  • 获取$ct 里面的所有孩子
    $('.ct').children()

  • 对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
    $('.item').parents('.ct').find('.panel')

  • 获取选择元素的数量

<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>
  • 获取当前元素在兄弟中的排行
    $ct.index()

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

  • 当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
<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>
  • 当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
<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>
  • 当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
<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>
  • 当选择 select 后,获取用户选择的内容
<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);
});

相关文章

  • jQuery动画与ajax

    jQuery动画与ajax jQuery 中, $(document).ready()是什么意思 jQuery的l...

  • Ajax实现登陆验证

    关于jquery与Ajax jQuery 提供多个与 AJAX 有关的方法。通过 jQuery AJAX 方法,能...

  • jQuery动画与ajax

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

  • jQuery动画与ajax

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

  • jQuery动画与Ajax

    jQuery 中, $(document).ready()是什么意思? 必须在DOM元素加载完成后,即DOM树建立...

  • jQuery动画与ajax

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

  • JQuery动画与ajax

    1. jQuery 中, $(document).ready()是什么意思? 当DOM准备就绪时,指定一个函数来执...

  • jQuery动画与ajax

    题目1: jQuery 中, $(document).ready()是什么意思? 题目2: $node.html(...

  • jQuery动画与ajax

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

  • jQuery动画与ajax

    1、 jQuery 中, $(document).ready()是什么意思? 主要用来加载DOM,替代原生Java...

网友评论

    本文标题:jQuery动画与ajax

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