题目1: jQuery 中, $(document).ready()是什么意思?
当DOM准备就绪时,指定一个函数来执行。即在页面上元素加载完成之后再执行。
如果执行的代码需要在元素被加载之后才能使用时,(例如,取得图片的大小需要在图片被加载完后才能知道),就需要将这样的代码放到 load 事件中。
题目2: $node.html()和$node.text()的区别?
就像.innerHTML
和innerText
的区别一样。
$node.html()传递的是整个标签,$node.text()传递的是标签内的文本内容。
题目3: $.extend 的作用和用法?
jQuery.extend([deep,] target [, object1 ] [, objectN ] )
[deep]:是否深拷贝
target:目标对象
[object]:传递对象,可以有很多个,但是后面的相同参数会覆盖前面的。
如果第一个对象的属性本身是一个对象或数组,那么它将完全用第二个对象相同的key重写一个属性。这些值不会被合并。如果将 true作为该函数的第一个参数,那么会在对象上进行递归的合并。
题目4: jQuery 的链式调用是什么?
$title.addClass('hover').siblings('.hover').removeClass('hover')
题目5: jQuery 中 data 函数的作用
在匹配元素上存储任意相关数据 或 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。
我们可以在一个元素上设置不同的值,之后获取这些值:
$("body").data("bar", "foobar");
alert( $("body").data("bar")); //foobar
题目6:
写出以下功能对应的 jQuery 方法:
- 给元素 $node 添加 class active,给元素 $noed 删除 class active
添加 $node.addClass('active')
删除 $node.removeClass('active')
- 展示元素$node, 隐藏元素$node
展示 $node.show()
隐藏 $node.hide()
- 获取元素$node 的 属性: id、src、title, 修改以上属性
获取
$node.attr('id')
$node.attr('src')
$node.attr('title')
修改
$node.attr({
id: "abc",
src: "aaa",
title:"aaa"
});
- 给$node 添加自定义属性data-src
$node.data("src",xxx)
- 在$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.height()
包括内容和内边距
$node.innerWidth()
$node.innerHeight()
包括内容,内边距,边框
$node.outerWidth()
$node.outerHeight()
包括内容,内边距,边框,外边距
$node.outerHeight(true)
$node.outerWidth(true)
- 获取窗口滚动条垂直滚动距离
$(window).scrollTop()
- 获取$node 到根节点水平、垂直偏移距离
$node.offset()
- 修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({
"color": "red",
"font-size": "14px"
});
- 遍历节点,把每个节点里面的文本内容重复一遍
$node.each(function(){
console.log($(this).text())
})
- 从$ct 里查找 class 为 .item的子元素
$( "ct" ).index( '.item' )
- 获取$ct 里面的所有孩子
$ct.children()
- 对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
$node.parents('.ct').find('.panel')
- 获取选择元素的数量
$node.length
- 获取当前元素在兄弟中的排行
$node.index()
题目7:
用jQuery实现以下操作:
- 当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
demo - 当窗口滚动时,获取垂直滚动距离
$(window).on('scroll', function(){
console.log($(window).scrollTop())
})
当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
demo当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
demo当选择 select 后,获取用户选择的内容
demo