题目1: jQuery 中, $(document).ready()是什么意思?
当dom完全加载(例如html被完全解析dom树构建完成时),jquery允许你执行代码,使用此函数可以做到表现与逻辑分离,并且所有的浏览器都支持,可以放到页面的任何位置。
题目2: $node.html()和$node.text()的区别?
$node.html():获取元素内html标签加文本内容。
$node.html(string):设置该元素内的html
$node.text():只获取元素内的文本内容。
$node.text(string):设置该元素的文本内容
题目3: $.extend 的作用和用法?
- 用法一
目标对象(第一个参数)将被修改,并且将通过$.extend()返回。然而,如果我们想保留原对象,我们可以通过传递一个空对象作为目标对象:
如图当传入参数为一个或这多个对象时这个方法是把后面的对象向第一个对象(obj1)扩展;后面的对象与第一个有重复的则覆盖没有的则添加到第一个对象;第一个的对象可以是一个空对象({})
- 用法二(深浅拷贝)
在默认情况下,通过$.extend()合并操作不是递归的;
如果第一个对象的属性本身是一个对象或数组,那么它将完全用第二个对象相同的key重写一个属性。这些值不会被合并。如果将true作为该函数的第一个参数,那么会在对象上进行递归的合并。
题目4: jQuery 的链式调用是什么?
每个jQuery的方法都会返回(return)一个jQuery对象,使得一个对象可以多次调用方法
题目5: jQuery 中 data 函数的作用
在匹配元素上存储任意相关数据 或 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。
详情可参考:http://www.jquery123.com/data/
题目6:写出以下功能对应的 jQuery 方法
给元素 $node 添加 class active,给元素 $noed 删除 class active
- 给元素 $node 添加 class active,给元素 $noed 删除 class active
$node.addClass()
$node.removeClass() - 展示元素$node, 隐藏元素$node
$node.show()
$node.hide() - 获取元素$node 的 属性: id、src、title, 修改以上属性
$node.attr("id",str)
$node.attr("src",str)
$node.attr("title",str) - 给$node 添加自定义属性data-src
$node.data("src",str) - 在$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.width():不包括内边距
$node.innerWidth():包括内边距
$node.outerWidth():包括内边距和边框
$node.outerWidth(true):包括内边距,边框,外边距 - 获取窗口滚动条垂直滚动距离
$(window).scrollTop() - 获取$node 到根节点水平、垂直偏移距离
$node.offset() - 修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({"font":"red","fontSize":"14px"}) - 遍历节点,把每个节点里面的文本内容重复一遍
$node.each(function(index,node){
var str = $(this).text()
$(this).text(str+str)
}) - 从$ct 里查找 class 为 .item的子元素
$ct.find('.item') - 获取$ct 里面的所有孩子
$ct.children() - 对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
$node.parent('.ct').find('.panel')
注意!:$node.parent()和$node.parents()的用法 - 获取选择元素的数量
$node.length - 获取当前元素在兄弟中的排行
$.node.index()
题目7:用jQuery实现以下操作
- 当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
- 当窗口滚动时,获取垂直滚动距离
- 当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
- 当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
- 当选择 select 后,获取用户选择的内容
效果预览:http://js.jirengu.com/vamuxesivu/1/edit