美文网首页
Web30.jQuery动画&AJAX

Web30.jQuery动画&AJAX

作者: FiredEarthMusic | 来源:发表于2017-10-19 06:33 被阅读8次
var obj1 = {a:1}
var obj2 = {b: 2, c:3}
var obj3 = {b:3, d:5}
$('.box>ul>li').each(function(index, node){
    //node是原生dom
    var str = $(node).text()
    $(node).text(str + str)

    //var str = $(this).text()
    //$(this).text(str+str)

    //node.innerText = node.innerText + node.innerText
    
    //console.log(arguments)
})
<div class="box">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</div>

$('.div>ul>li').each(function(index, node){
    var str = $(node).text()
    $(node).text(str + str)
    console.log(arguments)

    //或者
    //console.log(this)
    //var str = $(this).text()
    //$(this).text(str+str)
    //console.log(arguments)
})
//写法1:
$.ajax({
    url: '/hello',
    method: 'get',
    dataType: 'json',
    data: {
        a: 1,
        b: 2
    },
    success: function(ret){
        console.log(ret)
    },
    error: function(){
    }
})

//写法2:
$.ajax({
    url: '/hello',
    method: 'post',
    dataType: 'json',
    data: {
        a: 1,
        b: 2
    }
}).done(function(ret){

}).error(function(){

})
//简写
$.get('/hello', {}).done(function(ret){
    console.log(ret);
})
$.get('/user/100', {name:"ruoyu", age: 28})
  .done(function(ret){
        console.log(ret);
    }).fail(function(){
        console.log('error');
    })

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

$(callback)
$(document).ready(handler) 等DOM完全加载完成之后再去执行函数

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

$node.html() 选取的是指定节点的html
$node.text():选取的是指定节点的text内容只有文本内容

题目3: $.extend 的作用和用法?

用于对象的拓展

var object = $.extend({ }, object1, object2);  //将object1 object2扩展到空对象上
var obj1 = {a:1}
var obj2 = {b:2, c:3}
var obj3 = {b:3, d:5}
var obj4 = {}
$.extend(obj1, obj2)   //obj1 == {a:1 b:2 c:3}
$.extend(obj1, obj2, obj3)  // {a:1, b:3, c:3, d:5}
$.extend(obj4, obj1, obj2, obj3)

var obj5 = $.extend({}, obj1, obj2, obj3)

题目4: jQuery 的链式调用是什么?

对发生在同一个jQuery对象上的一组动作,可以直接连写而无需重复获取对象

$div.hide().show().css()  //第一个函数执行完返回JQuery对象,所以可以再次执行函数
$div.hide()
      .show()
      .css()

题目5: jQuery 中 data 函数的作用

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

         //给元素 $node 添加 class active,给元素 $node 删除 class active
         $node.addClass('active');
         $node.removeClass('active');
        

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

         
             
         ```
         //获取元素$node 的 属性: id、src、title, 修改以上属性
         $node.attr('id')
         $node.attr('src')              
         $node.attr('title')

         $node.attr('id', '1')
         $node.attr('src', '2')
         $node.attr('title', '3')
         ```

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

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

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

         ```
         //  删除$node
         $(node).remove()
         ```
         
         把$ct里内容清空

         ```
         $ct.empty()   
         ```

         在$ct 里设置 html <div class="btn"></div>

         ```
         $ct.html('<div class="btn"></div>')
         ```

         获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、
         包括边框、包括外边距)
         
         ```
         //不包括内边距
         $node.height();              
         $node.width();
         $node.height('50px');
         $node.width('50px');

         ```
   
         
         ```
          //包括内边距
         $node.innerHeight();
         $node.innerWidth();
         $node.innerHeight('50px');
         $node.innerWidth('50px');
         ```


      
         
         ```
         //包括边框
         $node.outerHeight()
         $node.outerWidth()
         $node.outerHeight('50px')
         $node.outerWidth('50px')
         ```

   

         ```
          //包括外边距
         $node.outerWidth(true)
         $node.outerHeight(true)
         ```

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

         ```
         $node.scrollTop()
         ```

         获取$node 到根节点水平、垂直偏移距离

         ```
         $node.offset()
         ```

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

         ```
         $node.css({'color': 'red', 'font-size': '14px'});
         ```

         遍历节点,把每个节点里面的文本内容重复一遍

          ```
          $element.each(function(){
               var $this = $(this);
               $this.text($this.text()+$this.text())
           })  
          ``` 

         从$ct 里查找 class 为 .item的子元素

         ```  
         $ct.children('.item')
         ```

         获取$ct 里面的所有孩子

         ```
         $ct.children()
         ```

         对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子

         ```
         $node.parents('.ct').find('.panel1')
         ```

         获取选择元素的数量

         ```
         $('div').length
         ```
     
         获取当前元素在兄弟中的排行

         ```
         $node.index()
         ```

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

         //当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
         var $btn = $('.btn');
         $btn.on('click', function(){
             $btn.css("background": "red");
             setTimeout(function(){
                 $btn.css("background": "blue");
              },1000);
         })
         


         //当窗口滚动时,获取垂直滚动距离
         $(document).on('scroll', function(){
              var distance = $(document).scrollTop();
              console.log(distance);
         })
         



         //当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为
         白色  
         var $div = $('div');
         $div.on('mouseover', function(){
              $div.css("background" : "red");
          }); 
         $div.on('mouseleave', function(){
              $div.css("background" : "white" );
         });
         


         //当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改
         变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框
         蓝色,控制台展示输入框里的文字
         <style>
             .border{
                 border-color: blue;
             }
         </style>
         <input type="text" id="int">
         <script>
             var $int = $('#int');
             $int.on('focus',function(){
                 $(this).addClass("border");
             }).on('keyup',function(){
                 $(this).val($(this).val().toUpperCase());
             }).on('blur', function(){
                 $(this).removeClass("border");
                 console.log($(this).val());   
             })
         </script>
         

      http://js.jirengu.com/naqohoyuxe/1/edit




        //当选择 select 后,获取用户选择的内容
         var $select = $('#select');
         $select.on('change', function(){
             console.log($(this).val());
         })

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

客户端:

<body>
    <div class="container">
        <ul class="list">
            <li>内容1</li>
            <li>内容2</li>
        </ul>
        <a href="javascript:;" id="btn">加载更多</a>
    </div>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script>
       var $btn = $('#btn')
 var $list= $('.list')
 var page = 0; 
 $btn.on('click',function() {
   $.ajax({
       url:'/loadmore',
       method:'get',
       data:{
          page: page,
          length: 5
       }
   }).done(function(res){
     if (res.status===0) {
        show(res.data)
    } else {
        alert('加载数据错了')
    }
   }).fail(function(){
       alert('系统异常')
 })
     
    })

function show(news) {
        for (var i = 0; i < news.length; i++) {
        var $node=$('<li></li>');
            $node.text( news[i] ) 
            $list.append($node);
        };       
        page+=5;
 
}
   </script>
</body>


<style>
 * {
    padding: 0;
    margin: 0;
    font-size: 20px;
    }
    body {
        padding: 10px;
    }
     li {
        list-style: none;
        border: 1px solid #ccc;
        line-height: 2;
        margin-top: 10px;
        cursor: pointer;
     }
     #btn {
        display: block;
        width: 100px;
        padding: 5px;
        margin: 10px auto;
        border: 1px solid #E27272;
        border-radius: 3px;
        color: #E27272;
        text-decoration: none;
        text-align: center;
     }
     li:hover {
        background: green;
     }
 <style>



router.js

router.get('/loadmore',function(req,res) {
  var index = req.query.page;
  var len = req.query.length;
  var data=[];
  for (var i = 0; i < len; i++) {
    data.push('新闻'+(parseInt(index)+i))
  };
 res.send({
   status:0,
   data:data
 });
})

题目9(选做): 实现一个天气预报页面,UI 如下图所示(仅供参考,可自由发挥)。

数据接口:
获取天气接口:http(s)://weixin.jirengu.com/weather
服务端支持 CORS 跨域调用,前端可直接使用 ajax 获取数据,返回
数据以及使用方式参考 http://api.jirengu.com

更多接口:
http://api.jirengu.com

施工中

相关文章

  • Web30.jQuery动画&AJAX

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

  • jQuery动画AJAX

    题目1: jQuery 中, $(document).ready()是什么意思? 在DOM和页面都加载完毕后会执行...

  • jQuery动画与ajax

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

  • jQuery动画与ajax

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

  • jQuery动画__ jQuery ajax

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

  • 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(...

网友评论

      本文标题:Web30.jQuery动画&AJAX

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