题目1: jQuery 中, $(document).ready()是什么意思?
当DOM加载完成后执行方法.ready()中传递的函数。
题目2: $node.html()和$node.text()的区别?
- $node.html()获取html部分包括元素的标签
当.html()方法带参数时,会修改html的内容
//html代码
<p>段落</p>
//jQuery代码
$('p').html()//<p>段落</p>
$('p').html('<span>修改内容</span>')
//html代码
<span>修改内容</span>
- $node.text()获取html中的内容,不包括元素的标签
当.text()方法带参数时,会修改html标签中的内容
//html代码
<p>段落</p>
//jQuery代码
$('p').text()//修改内容
$('p').text('修改内容')
//html代码
<p>修改内容</p>
题目3: $.extend 的作用和用法?
- 作用:用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
- 用法:
var a = { key: false, index: 5, name: "foo" };
var b = { key: true, name: "bar" };
$.extend(settings, options);
//结果
settings == { key: true, index: 5, name: "bar" }
题目4: jQuery 的链式调用是什么?
jQuery 的链式调用例子:
$node.addClass().removeClass().eq().find()
jQuery所有对象的方法返回的都是对象本身,所以在方法A后可以继续调用方法B等同于jQuery直接调用方法B。
题目5: jQuery 中 data 函数的作用
data函数的作用是在元素上存放或读取数据,返回jQuery对象
语法:
data([key],[value])
//key:存储的数据名
//value:将要存储的任意数据
//当参数只有一个key的时候,为读取该jQuery对象对应DOM中存储的key对应的值
//当参数为两个时,为像该jQuery对象对应的DOM中存储key-value键值对的数据。
//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
题目6:写出以下功能对应的 jQuery 方法:
- 给元素 $node 添加 class active
$node.addClass('active')
- 给元素 $noed 删除 class active
$node.removeClass('active')
- 展示元素$node, 隐藏元素$node
$node.show()//展示
$node.hide()//隐藏
- 获取元素$node 的 属性: id、src、title, 修改以上属性
var $id = $node.attr('id')
$id.attr('id','xxx')
var $src = $node.attr('src')
$src.attr('src','xxx')
var $title = $node.attr('title')
$title.attr('title','xxx')
- 给$node 添加自定义属性data-src
$node.attr('data-src','url')
- 在$ct 内部最开头添加元素$node
$node.append($ct)
- 在$ct 内部最末尾添加元素$node
$node.appendTo($ct)
- 删除$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.outerWidth(true) 方法返回元素的宽度(包括内边距、边框和外边距)
$node.outerHeight(true) 方法返回元素的高度(包括内边距、边框和外边距)
- 获取窗口滚动条垂直滚动距离
$(window).scrollTop()
- 获取$node 到根节点水平、垂直偏移距离
$node.offset()
- 修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css({
"color":"red",
"font-size":"14px"
})
- 遍历节点,把每个节点里面的文本内容重复一遍
$( "li" ).each(function( index ) {
console.log($(this).text() );
})
- 从$ct 里查找 class 为 .item的子元素
$ct.find('.item')
- 获取$ct 里面的所有孩子
$ct.children()
- 对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
$node.parents('.ct').find('.panel')
- 获取选择元素的数量
$node.length
- 获取当前元素在兄弟中的排行
var index = $node.index()
题目7:
用jQuery实现以下操作当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
当窗口滚动时,获取垂直滚动距离
当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
当选择 select 后,获取用户选择的内容
demo
题目8: 用 jQuery ajax 实现如下效果。`当点击加载更多会加载数据展示到页面效果预览317
demo
//后台mock代码
app.get('/loadMore', function (req, res) {
var idx = req.query.index
var len = req.query.length
var ret = []
for(var i = 0;i<len ; i++){
ret.push("内容"+(parseInt(idx)+i))
}
res.send(ret)