jQuery-ajax

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

  • 当dom准备就绪时,指定一个函数来执行。
  • 虽然JavaScript提供了load事件,当页面呈现时用来执行这个事件,直到所有的东西,如图像已被完全接收前,此事件不会被触发。但是在大多数情况下,只要DOM结构已完全加载时,脚本就可以运行。传递处理函数给.ready()方法,能保证DOM准备好后就执行这个函数,因此,这里是进行所有其它事件绑定及运行其它 jQuery 代码的最佳地方。如果执行的代码需要在元素被加载之后才能使用时,(例如,取得图片的大小需要在图片被加载完后才能知道),就需要将这样的代码放到 load 事件中。

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

  • $node.html()可以获得元素当中的所有HTML内容,包括文本,标签这些。相当于innerHTML。
  • $node.text()只会获得元素当中的文本内容。相当于innerText。

$.extend 的作用和用法?

  • $.extend可以将两个或更多对象的内容合并到第一个对象。
  • $.extend( [deep ], target, object1 [, objectN ] )使用方法:
    deep :布尔值,如果是true,合并成为递归(又叫做深拷贝)。
    target: 目标对象,通过extend方法执行之后目标对象将被修改。
    object1,objectN:这些对象的属性会合并到target中,如果target中已经有了一样属性,则会进行覆盖。
  • 当我们提供两个或多个对象给$.extend(),对象的所有属性都添加到目标对象(target参数)。
  • 如果只有一个参数提供给$.extend(),这意味着目标参数被省略。在这种情况下,jQuery对象本身被默认为目标对象。这样,我们可以在jQuery的命名空间下添加新的功能。这对于插件开发者希望向 jQuery 中添加新函数时是很有用的
  • 如果第一个对象的属性本身是一个对象或数组,那么它将完全用第二个对象相同的key重写一个属性。这些值不会被合并。如果将 true作为该函数的第一个参数,那么会在对象上进行递归的合并。
var tar = {a : 1,b : 2}
var obj = {b : 3,c : 4,d : 6}
var obj1 = $.extend({},tar,obj) //如果不想tar被修改,那么可以让第一个参数变成一个空的对象。
$.extend(tar,obj)  //  {a : 1,b : 3,c : 4,d : 6}

var object1 = {
  apple: 0,
  banana: { weight: 52, price: 100 },
  cherry: 97
};
var object2 = {
  banana: { price: 200 },
  durian: 100
$.extend( object1, object2 ); //{apple: 0,banana: { price: 200 },cherry: 97,durian: 100}
};

jQuery 的链式调用是什么?

  • 因为调用jQuery对象的方法之后会返回该对象,所以在该对象返回之后再次调用该对象的jQuery方法被称为链式调用,这样做可以减少代码量,让代码看上去更加优雅。
$('body').css({'background':red}).css('color':'#fff');

jQuery 中 data 函数的作用

  • 在匹配元素上存储任意相关数据 或 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。
  • 我们可以在一个元素上设置不同的值,之后获取这些值:
$("body").data("foo", 52);
$("body").data("bar", { myType: "test", count: 40 });
$("body").data({ baz: [ 1, 2, 3 ] });
 
$("body").data("foo"); // 52
$("body").data(); // { foo: 52, bar: { myType: "test", count: 40 }, baz: [ 1, 2, 3 ] }

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

1.给元素 $node 添加 class active,给元素 $noed 删除 class active
2.展示元素$node, 隐藏元素$node
3.获取元素$node 的 属性: id、src、title, 修改以上属性
4.给$node 添加自定义属性data-src
5.在$ct 内部最开头添加元素$node
6.在$ct 内部最末尾添加元素$node
7.删除$node
8.把$ct里内容清空
9.在$ct 里设置 html


10.获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
11.获取窗口滚动条垂直滚动距离
12.获取$node 到根节点水平、垂直偏移距离
13.修改$node 的样式,字体颜色设置红色,字体大小设置14px
14.遍历节点,把每个节点里面的文本内容重复一遍
15.从$ct 里查找 class 为 .item的子元素
16.获取$ct 里面的所有孩子
17.对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
18.获取选择元素的数量
19.获取当前元素在兄弟中的排行

var $node = $('.node')
var $ct = $('.ct')
$node.addClass('active');
$node.removeClass('active');// 1给元素 $node 添加 class active,给元素 $noed 删除 class active
$node.show();
$node.hide();//2展示元素$node, 隐藏元素$node
$node.attr('id');
$node.attr('src');
$node.attr('title');
$node.attr('id','node node1');
$node.attr('src','123456');
$node.attr('title','xxxxxx');   //3 获取元素$node 的 属性: id、src、title, 修改以上属性
$node.data('data-src','xxx123456')//4 给$node 添加自定义属性data-src
$node.prependTo($ct) //5 在$ct 内部最开头添加元素$node,等同$ct.prepend($node)
$node.appendTo($ct)  //6 在$ct 内部最末尾添加元素$node.等同$ct.append($node)
$node.remove()//7删除$node
$ct.empty() //8 把$ct里内容清空,其实感觉$ct.find().remove()好像也差不多
$ct.html('html 
') //9在$ct 里设置 html
$node.width() $node.height() $node.css('width') $node.css('height')//10不包括内边距的宽高 $node.innerWidth() $node.innerHeight()//10包括内边距宽高 $node.outerWidth() $node.outerHeight()//10包括边框 $node.outerWidth(true) $node.outerHeight(true)//10包括外边距 $(window).scrollTop() //11获取窗口滚动条垂直滚动距离 $node.offset().left $node.offset().top //12获取$node 到根节点水平、垂直偏移距离 $node.css({'color' : 'red';'font-size' : '14px'})//13修改$node 的样式,字体颜色设置红色,字体大小设置14px $nodes.each(function(i,node){ $(node).text().clone(); })//14遍历节点,把每个节点里面的文本内容重复一遍 $ct.children('.item') //15从$ct 里查找 class 为 .item的子元素 $ct.find()//16获取$ct 里面的所有孩子 $node.parents('.ct').find('.panel') //17对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子 $node.length //18获取选择元素的数量 $node.index() //19获取当前元素在兄弟中的排行

用jQuery实现以下操作

1.当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
2.当窗口滚动时,获取垂直滚动距离
3.当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
4.当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,5.当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
6.当选择 select 后,获取用户选择的内容
代码:
http://js.jirengu.com/xiqeneximi/1/edit?html,css,js
预览:
http://js.jirengu.com/xiqeneximi

用jQuery实现加载更多

前端代码
https://github.com/cxxxingxuan/ajax/blob/master/index.html
后台代码
https://github.com/cxxxingxuan/ajax/blob/master/router.js

你可能感兴趣的:(jQuery-ajax)