jQuery动画与ajax

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

.ready()指的是当DOM准备就绪,指定一个函数来执行。js原生的load事件,要等DOM和图像完全加载才会触发。
使用.ready()方法能够保证DOM准备好之后,就执行这个函数,因此,这里是绑定事件和运行jQuery代码最好的地方。

//下面两种语法等价
$(document).ready(handler)
$(handler)

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

.html()获取第一个匹配元素的HTML内容,如果选择器匹配多于一个的元素,那么只有第一个匹配元素的HTML内容会被获取。
.text()获取所有元素的匹配内容,结果是所有匹配元素包含的文本内容组合起来的文本。

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

jQuery.extend( [deep,] target [, object1 ] [, objectN ] )
提供两个或多个对象,对象的所有属性都添加到目标对象。
如果只有一个参数提供给.extend(),这意味着目标参数被省略。在这种情况下,jQuery对象本身被默认为目标对像。这样,我们可以在jQuery的命名空间下添加新功能。这对于插件开发者希望向jQuery中添加新函数时是很有用的。

目标对象(第一个对象)将被修改,并且通过$.extend()返回。然而,如果我们想保留原对象,我们可以通过传递一个空对象作为目标对象:

var object = $.extend({}, object1, object2);

如果第一个对象的属性本身是一个对象或数组,那么它将完全用第二个对象相同的key重写一个属性。

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

指多个方法可以链式调用,如:

$('div').find('h3').eq(2).html('Hello');

链式调用可以节省代码量,提高代码的效率。

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

data()函数用于在当前jQuery对象所匹配的所有元素上存取数据。将数据绑定在一个DOM上

通过data()函数存取的数据都是临时数据,一旦页面刷新,之前存放的数据都将不复存在。

该函数属于jQuery对象(实例)。如果需要移除通过data()函数存放的数据,请使用removeData()函数。

题目6:

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

  • 给元素 $node 添加 class active,给元素 $node 删除 class active

    $node.addClass('active');
    $node.removeClass('active');
    
  • 展示元素$node, 隐藏元素$node

    $node.hide();
    $node.css("display","none");
    
  • 获取元素$node 的 属性: id、src、title, 修改以上属性

    $node.attr({
      id: 'test',
      src: 'http://test.com',
      title: 'test',
    });
    
  • $node 添加自定义属性data-src

    $node.attr('data-src', 'test')
    
  • $ct 内部最开头添加元素$node

    $ct.prepend($node);
    
  • $ct 内部最末尾添加元素$node

    $ct.append($node)
    
  • 删除$node

    $node.remove();
    
  • $ct里内容清空

    $ct.empty()
    
  • $ct里设置 html

    $ct.html('
    ')
  • 获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)

    //获取计算宽度值,height同理
    $node.width()
    $node.height()
    //获取计算的内部宽度,包括padding,不包括border, innerHeight同理
    $node.innerWidth()
    $node.innerHeight()
    //获取计算外部宽度,包括padding, border,和可选的margin,outerHeight同理
    $node.outerWidth()
    $node.outerHeight()
    
  • 获取窗口滚动条垂直滚动距离

    $node..scrollTop()
    
  • 获取$node 到根节点水平、垂直偏移距离

    $node.offset().top;    
    $node.offset().left;
    
  • 修改$node 的样式,字体颜色设置红色,字体大小设置14px

    $node.css({
      color: "red",
      fontSize: "14px"
    });
    
  • 遍历节点,把每个节点里面的文本内容重复一遍

    $node.each(function(){
        $(this).text($(this).text() + $(this).text())
     })
    
  • $ct 里查找 class 为 .item的子元素

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

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

    $node.parents('.ct').find('.panel')
    
  • 获取选择元素的数量

    $node.length
    
  • 获取当前元素在兄弟中的排行

    $node.index()
    

题目7:

用jQuery实现以下操作

  • 当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色

    $btn.on('click', function(){
      $this.css('background-color','red');
      setTimeout(function(){
         $btn.css('background-color', 'blue');
       }, 200)
    })
    
  • 当窗口滚动时,获取垂直滚动距离

      $(window).scroll(function(){
          console.log($(this).scrollTop())
        })
    
  • 当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色

        $div.on('mouseenter', function(){
          $(this).css('background-color', 'red');
        }).on('mouseleave', function(){
          $(this).css('background-color', 'white');
        })
    
  • 当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字

        $('input[type=text]').on('focus', function(){
          $(this).css('border-color', 'blue')
        }).on('change', function(){
          $(this).val($(this).val().toUpperCase())
        }).on('blur', function(){
          $(this).css('border-color', '')
          console.log($(this).val())
        })
    
  • 当选择 select 后,获取用户选择的内容

    $select.val()
    

你可能感兴趣的:(jQuery动画与ajax)