jQuery动画与ajax

2017-07-20  本文已影响30人  hhg121

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

当DOM加载完成时,执行其中的代码。
与原生JavaScript中的load事件需要在页面所有内容加载完成后才执行不同,ready只要在DOM结构加载完成后,就可以执行。

$(document).ready(function(){
});
可简写为:
$(function(){
})

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

$node.html():选取节点的文本内容和标签。
$node.text():选取节点的文本内容。

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

jQuery.extend( [deep ], target[, object1] [, objectN ] )

  1. 当我们提供两个或多个对象给$.entend(),对象的所有属性都添加到目标对象(target参数)。同时,对象里如果有相同的属性,后面的将覆盖前面的。
  2. 如果只有一个参数提供给$.extend(),这意味着目标参数被省略。在这种情况下,jQuery对象本身被被默认为目标对象。这样,我们可以在jQuery的命名空间下添加新的功能。这对于插件开发者希望向jQuery中添加新函数时很有用的。

目标参数将被修改,并且通过$.extend()返回。然而,如果我们想保留原对象,我们可以通过传递一个空对象作为目标对象:
var object = $.extend({}, object1, object2);
在默认情况下,通过$.extend()合并操作不是递归的;
如果第一个对象的属性本身是一个对象或数组,那么它将完全用第二个对象相同的key重写一个属性。如果将deep设置成true作为该函数的第一个参数,那么会在对象上进行递归的合并。

var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
};

// Merge object2 into object1
$.extend(object1, object2 );
console.log(object1);           // 其中banana:{price:200}

$.extend(true, object1, object2 );    //banana: {price: 200, weight: 52}

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

jQuery链式调用:在对象上一次性调动多个方法
$(this).addClass("active").siblings().removeClass("active");
$('#ct').css('color','blue').show(400).hide();
因为大部分对象方法的最后是return this,所以有了链式调用,简易代码。

5: jQuery 中 data 函数的作用

jQuery.data( element, key, value )
element:要存储数据的DOM对象
key:存储的数据名
value:新数据值
jQuery.data() 方法允许我们在DOM元素上附加任意类型的数据,避免了循环引用的内存泄漏风险。如果 DOM 元素是通过 jQuery 方法删除的或者当用户离开页面时,jQuery 同时也会移除添加在上面的数据。

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

$('#xxx').addClass('active');
$('#xxx').removeClass('active');
$('#xxx').hide();
$('#xxx').show();
$node.attr('id')
$node.attr('id','value')
$node.attr('src')
$node.attr('src','value')
$node.attr('title')
$node.attr('title','value')
$node.attr('data-src','123');
$node.data('src','somevalue')
//不包括内边距
$node.height();              //读取高度
$node.width();               //读取宽度
$node.height('50px');     //设置高度
$node.width('50px');      //设置宽度

//包括内边距
$node.innerHeight();    //读取高度
$node.innerWidth();      //读取宽度
$node.innerHeight( '50px' );    //设置高度
$node.innerHeight( '50px' );    //设置高度

 //包括边框
$node.outerHeight();    //读取高度
$node.outerwidth();    //读取宽度
$node.outerHeight('50px');    //设置高度
$node.outerwidth('50px');    //设置宽度

//包括外边距
$node.outerHeight(true);    //读取高度
$node.outerwidth(true);    //读取宽度

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

7:用jQuery实现一下操作

code

var $btn = $('.btn');
$btn.on('click',function(){
  $btn.css('background','blue');
  setTimeout(function(){
    $btn.css('background','red');
  },1000);
});
$(window).scroll(function(){
  $('div.scroll').html($(this).scrollTop());
});
var $div = $('div.box');
$div.on('mouseenter',function(){
  $div.css('background','red');
});
$div.on('mouseleave',function(){
  $div.css('background','white');
});
var $ipt = $('.ipt');
$ipt.on('focus',function(){
  $ipt.addClass('border');
}).on('keyup',function(){
  $ipt.val($ipt.val().toUpperCase());
}).on('blur',function(){
  $ipt.removeClass('border');
  console.log($ipt.val());
});
var $slt = $('#slt');
$slt.on('change',function(){
  console.log($slt.val());
});

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

code

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>news</title>
  <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  <style>
  .contain div{
    border: 1px solid #ccc;
    padding: 10px;
    margin-bottom: 10px;
  }
  .contain div:hover {
    background: green;
    color: white;
  }
  button {
    display: block;
    padding: 0;
    margin: 0 auto;
    background: white;
    border-radius: 3px;
    border: 1px solid red;
  }
  button a {
    display: inline-block;
    padding: 10px;
    color: red;
    font-size: 16px;
    text-decoration: none;
  }
  </style>
</head>
<body>
  <div class="contain"> 
    <div>内容1</div>
    <div>内容2</div>
  </div>
  <button ><a href="javascript:;">加载更多</a></button>
  <script type="text/javascript">
    var pageIndex = 3;
     $("button").on('click',function(){
      console.log(3);
      $.ajax({
        url:'http://localhost:8080/loadMore',
        method: 'get',
        data:{
          page: pageIndex,
          length: 5
        }
      }).done(function(result){
        appendHtml(result);
        pageIndex += 5;
      }).fail(function(){
        console.log(2);
      })
    })
//别人用jQuery写得,我用css写的
   //$('.cot').on('mouseenter','li',function(){
   //  $(this).css({
    //    background: 'green',
    //    color: 'white'
    //  })
   // });

    // $('.contain div').on('mouseenter',function(){
    //   $(this).css({'background':'green','color':'white'});
    // });
    // $('.contain div').on('mouseleave',function(){
    //   $(this).css({'background':'white','color':'black'});
    // });

    function appendHtml(content){               
        var html = '';
        for (var i = 0; i < content.length; i++) {
            html += '<div>' + content[i] + '</div>';
        }
        $('.contain').append(html);
    }
  </script>
</body>
</html>

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

猜你喜欢

热点阅读