题目1: jQuery 中, $(document).ready()是什么意思?
dom结构全部加载后再执行对其绑定的函数
当 DOM(文档对象模型) 已经加载,并且页面(包括图像)已经完全呈现时,会发生 ready 事件。
ready() 函数规定当 ready 事件发生时执行的代码。
ready() 函数仅能用于当前文档,因此无需选择器。
如果执行的代码需要在元素被加载之后才能使用时, (如取得图片的大小需要在图片被加载完后才能知道), 就需要将这样的代码放到load事件中。
$(document).ready(function(){
})
$(function(){
})//一般推荐用此种方法,上一种方法在jQuery3.0中效率较低
题目2: node.text()的区别?
node.text() 获取匹配元素集合中每个元素的合并文本,包括他们的后代,不包括标签。设置匹配元素集合中每个元素的文本内容为指定的文本内容。
你好
console.log($('.box').html()) // 你好
console.log($('.box').text()) // 你好
题目3: $.extend 的作用和用法?
是用来功能扩展的,将两个或更多对象的内容合并到第一个对象里。
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( key, value )
.data(key)
key:string类型,储存的数据名
value:任意类型,除了undefined
1.如果元素没有设置任何值将返回undefined
2.HTML5 data-
属性自动被引用到jQuery的数据对象中,data-
属性是在第一次使用这个数据属性后不再存取或改变
3.调用.data()
如果不带参数,将会以JavaScript对象的形式获取所有数据,这个对象可以安全存放在变量中,因为他的提取对之后进行的.data(obj)
操作不会干扰
4.直接操作这个对象会比每次调用.data()
来设置或获取值要快一些
题目6:
写出以下功能对应的 jQuery 方法:
给元素 noed 删除 class active
$node.addClass('active')
$node.removeClass('active')
展示元素node
$(node).show()
$(node).hide()
获取元素$node 的 属性: id、src、title, 修改以上属性
$node.attr('id', 'ct')
$node.attr('src', 'http://www.baidu.com')
$node.attr('title', 'hello')
给$node 添加自定义属性data-src
$node.attr('data-src', 'http://www.baidu.com//#115')
在node
$ct.prepend($node)
$node.prepend($ct)
在node
$ct.append($node)
$node.append($ct)
删除$node
$node.remove()
把$ct里内容清空
$ct.empty()
在$ct 里设置 html
$ct.append('')
获取、设置$node 的宽度、高度(分别不包括内边距、包括内边距、包括边框、包括外边距)
不包括内边距(不加padding不加border)
$node.width()
$node.height()
包括内边距(加padding不加border)
$node.innerWidth()
$node.innerHeight()
包括边框(加padding加border)
$node.outerWidth()
$node.outerHeight()
//()里默认是false
包括外边距(加padding加border加margin)
$node.outerWidth(true)
$node.outerHeight( true )
//这个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:
当点击btn 的背景色变为红色再变为蓝色
效果
代码
当窗口滚动时,获取垂直滚动距离
效果
代码
当鼠标放置到div 背景色改为红色,移出鼠标背景色变为白色
效果
代码
当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
效果
代码
当选择 select 后,获取用户选择的内容
效果
代码
题目8: 用 jQuery ajax 实现如下效果。当点击加载更多会加载数据展示到页面
页面代码
后台代码