jQuery 中, $(document).ready()是什么意思?
- $(document).ready()是当文档中的DOM节点加载完成后,在加载外部图片和资源前,执行ready()里面的操作。
- window.onload是整个页面加载完成(包括图片、CSS、脚本等)后,执行onload()中的操作。
$node.html()和$node.text()的区别?
- $node.html() 获取元素内容,包括html标签和文本内容
- $node.text() 只获取文本内容
$.extend 的作用和用法?
var obj = {};
var obj1 = {
name:'hunger',
age:'24'
}
var obj2= {
name:'chris',
age:'24'
}
$.extend(obj,obj1);
console.log(obj) // { name:'hunger', age:'24' } 默认情况下为浅拷贝,可设置ture为深拷贝
function person(){
var obj1 = {
name:'hunger',
age:'24'
}
var opts = $.extend({},obj1,boj2);
console.log(opts); //Object {name: "chris", age: "24"}
}
jQuery 的链式调用是什么?
方法链:使用jQuery方法时,对象方法返回的是对象本身,可以调用对此对象的其他jQuery方法,实现
连续调用多个方法
例:$(this).siblings().removeClass('active');
jQuery 中 data 函数的作用
在HTML5里,有一个data-属性,用来方便用户给标签绑定数据,jQuery的data函数也是这个作用,
可以传入两个参数,分别是key和value,或者传入一个object用于更新数据的键值对。
$("body").data("foo", 52);
//等价于
let obj = {"foo" : 52};
$("body").data(obj);
写出以下功能对应的 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','idname')
$node.attr('src','srcname')
$node.attr('src','titlename')
给$node 添加自定义属性data-src
$node.data('data-src','dataname')
在$ct 内部最开头添加元素$node
$ct.prepend($node)
$($node).prependTo($ct)
在$ct 内部最末尾添加元素$node
$ct.append($node);
删除$node
$node.remove()
把$ct里内容清空
$node.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.find('.item')
对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
$node.parents('.ct').find('.panel')
获取$ct 里面的所有孩子
$ct.children()
获取选择元素的数量
$node.length()
获取当前元素在兄弟中的排行
$node.index();
用jQuery实现以下操作当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
当窗口滚动时,获取垂直滚动距离
当鼠标放置到$div 上,把$div 背景色改为红色,移出鼠标背景色变为白色
当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
当选择 select 后,获取用户选择的内容