进阶任务十五
题目1: jQuery 中, $(document).ready()是什么意思?
-
当DOM准备就绪时,指定一个函数来执行。
-
也可以写成
$(function(){
console.log();
})
题目2: $node.html()和$node.text()的区别?
-
$node.html()作用是 取得第一个匹配元素的html内容,如果$node匹配多于一个的元素,那么只有第一个匹配元素的HTML 内容会被获取。与DOM对象的innerHTML属性类似。
-
$node.text()作用是 取得所有匹配元素的内容。结果是由所有匹配元素包含的文本内容组合起来的文本。与DOM对象的innerText属性类似。
题目3: $.extend 的作用和用法?
- 作用:当我们提供两个或多个对象给$.extend(),对象的所有属性都添加到目标对象(target参数)。
用法
var obj1 = {a:1}
var obj2= {b:2, c:3 }
var obj3 = {b:3, d:5}
var obj4 = {}
$.extend(obj1, obj2) // {a: 1, b: 2, c: 3}
$.extend(obj1, obj2, obj3) //{a: 1, b: 2, c: 3, d:5}
$.extend(obj4, obj1, obj2, obj3) //{a: 1, b: 2, c: 3, d:5}
var obj5 = $.extend({}, obj1, obj2, obj3)
console.log(obj5) //{a: 1, b: 2, c: 3, d:5}
题目4: jQuery 的链式调用是什么?
-
定义:分步骤的对jQuery对象使用方法后继续调用方法,不要再次选择jQuery对象。
-
原理:通过对象上的方法最后return this 把对象再返回回来,对象就可以继续调用方法。
-
作用: 使代码排版更清晰,便于查看执行流程。
题目5: jQuery 中 data 函数的作用
-
定义: 在匹配元素上存储任意相关数据 或 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。
-
作用:
.data()
方法允许我们在DOM元素上绑定任意类型的数据,避免了循环引用的内存泄漏风险。
.data( key, value )
.data(key)
key:string类型,储存的数据名
value:任意类型,除了undefined
1.如果元素没有设置任何值将返回undefined
2.HTML5 data-属性自动被引用到jQuery的数据对象中,data-属性是在第一次使用这个数据属性后不再存取或改变
3.调用.data()如果不带参数,将会以JavaScript对象的形式获取所有数据,这个对象可以安全存放在变量中,因为他的提取对之后进行的.data(obj)操作不会干扰
4.直接操作这个对象会比每次调用.data()来设置或获取值要快一些
题目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', 'prod')
$node.attr('src', 'hhtp: //www.baidu.com')
$node.attr('title', 'brief')
给$node 添加自定义属性data-src
$node.attr('data-src', 'www.baidu.com')
在$ct 内部最开头添加元素$node
$ct.prepend($node)
$node.prependTo($ct)
在$ct 内部最末尾添加元素$node
$ct.append($node)
$node.appendTo($ct)
删除$node
$node.remove()
把$ct里内容清空
$ct.empty()
在$ct 里设置 html <div class="btn"></div>
$ct.append('<div class="btn"></div>')
获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
- 不包括内边距(不加padding,border)
$node.width()
$node.height()
- 包括内边距(加padding,不加border)
$node.innerWidth()
$node.innerHeight()
- 包括外边距(加,padding,border,margin)
$node.outerWidth(true)
$node.outerHeight(true)
获取窗口滚动条垂直滚动距离
$node.scrollTop()
获取$node 到根节点水平、垂直偏移距离
$node.offset()
修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({
'color': red;
'font-size': '14px'
})
遍历节点,把每个节点里面的文本内容重复一遍
$node.each(function(){
var str = $(this).text()
$(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