题目1: jQuery 中, $(document).ready()是什么意思?
$(document).ready()的作用是等Html文档解析完成后执行JS的内容,以防止DOM元素没加载完成就执行JS内容,这样可能会出现找不到元素的情况。
等价于 $(hander)
题目2: $node.html()和$node.text()的区别?
$node.html() 的作用是返回的内容是元素内部的html的结构,包括标签,文本内容
$node.text()的作用是返回元素内包含的文本内容,在多层次的时候会按照元素由浅到深的顺序拼接其内容
题目3: $.extend 的作用和用法?
$.extend 的作用是用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
参数:target,[object1],[objectN]Object,Object,ObjectV1.0
target:一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。
object1:待合并到第一个对象的对象。
objectN:待合并到第一个对象的对象。
例:
var obj1 = {a:1}
var obj2 = {a:2,b:2}
$.extend(obj1,obj2) //obj{a:2,b:2}
题目4: jQuery 的链式调用是什么?
jQuery的链式调用是jquery可以支持连续调用方法。
其中的原理是:在调用方法后,return this 返回当前实例对象的this,这样返回的又是对象,就又可以继续调用方法了
题目5: jQuery 中 data 函数的作用
data([key],[value])
在元素上存放或读取数据,返回jQuery对象。
当参数只有一个key的时候,为读取该jQuery对象对应DOM中存储的key对应的值,值得注意的是,如果浏览器支持HTML5,同样可以读取该DOM中使用 data-[key] = [value] 所存储的值。
当参数为两个时,为像该jQuery对象对应的DOM中存储key-value键值对的数据。
如果jQuery集合指向多个元素,那将在所有元素上设置对应数据。 这个函数不用建立一个新的expando,就能在一个元素上存放任何格式的数据,而不仅仅是字符串。
例:
HTML 代码:
<div></div>
jQuery 代码:
$("div").data("blah"); // undefined
$("div").data("blah", "hello"); // blah设置为hello
$("div").data("blah"); // hello
$("div").data("blah", 86); // 设置为86
$("div").data("blah"); // 86
$("div").removeData("blah"); //移除blah
$("div").data("blah"); // undefined
描述:
在一个div上存取名/值对数据
HTML 代码:
<div></div>
jQuery 代码:
$("div").data("test", { first: 16, last: "pizza!" });
$("div").data("test").first //16;
$("div").data("test").last //pizza!;
描述:
在HTML5规范中div中读取预存的data-[key]值
HTML 代码:
<div data-test="this is test" ></div>
jQuery 代码:
$("div").data("test"); //this is test!;
题目6:
写出以下功能对应的 jQuery 方法:
给元素 $node 添加 class active,给元素 $node 删除 class active
$node.addClass('active')
$node.removeClass('active')
展示元素$node, 隐藏元素$node
$node.show();
$node.hide();
$node.css('display','none');
$node.css('display','block')
获取元素$node 的 属性: id、src、title, 修改以上属性
$node.attr('id','123');
$node.attr('src','http:.....');
$node.attr('title','123');
给$node 添加自定义属性data-src
$('node').prop('data')
在$ct 内部最开头添加元素$node
$ct.prepend();
在$ct 内部最末尾添加元素$node
$ct.append($node)
删除$node
$node.remove()
把$ct里内容清空
$ct.empty()
在$ct 里设置 html <div class="btn"></div>
$ct.append( '<div class="btn"></div>')
获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
$node.width(); // content
$node.height(); // content
$node.innerWidth(); // content+padding
$node.innerHeight(); // content+padding
$node.outWidth(); // content+padding+border
$node.outHeight(); // content+padding+border
$node.outWidth(true); // content+padding+border+margin
$node.outHeight(true); // content+padding+border+margin
获取窗口滚动条垂直滚动距离
$node.scrollTop();
获取$node 到根节点水平、垂直偏移距离
$node.offset();
$node.scrollLeft();
修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({'color':'red', 'font-size','14px'})
遍历节点,把每个节点里面的文本内容重复一遍
$.each(function(index,value,arr){
var str = $(this).text();
console.log($(this).text(str+str)) })
从$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 的背景色变为红色再变为蓝色
当窗口滚动时,获取垂直滚动距离
当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
当选择 select 后,获取用户选择的内容
预览
题目8: 用 jQuery ajax 实现如下效果。`当点击加载更多会加载数据展示到页面效果预览420
HTML
后台