题目1: jQuery 中, $(document).ready()是什么意思?
当dom准备就绪的时候,指定一个函数来执行。当DOM准备好后就执行ready里的函数,这里是进行所有其他事件绑定及运行其他jQuery代码的最佳地方。
题目2: $node.html()和$node.text()的区别?
.html()方法,读写两用,用于获取修改元素的innerHtml
.text() 方法读写两用,用于获取修改元素的文本内容innerText
区别
<p title="选择你最喜欢的水果"><strong>你最喜欢的水果是?</strong></p>
$('p').html() // <strong>你最喜欢的水果是?</strong>
$('p').text() //你最喜欢的水果是?
区别二:
<p title="选择你最喜欢的水果"><strong>你最喜欢的水果是?</strong></p>
$('p').html('<span>123</span>') // <p title="选择你最喜欢的水果"><span>123</span></p>浏览器上看到的是 123 三个数字
$('p').text('<span>123</span>') // <p title="选择你最喜欢的水果"><span>123</span></p> 浏览器看到的 <span>123</span> span没有作为标签,插入到htmldomo中,而是作为text p的文本内容显示到浏览器上。
题目3: $.extend 的作用和用法?
用于一个对象的扩展
var obj1={a:1}
var obj2={b:2,c:3}
var obj3={b:3,d:5}
$.extend(obj1,obj2) 将obj2的内容扩展到obj1上,obj1 已改变,为{a:1,b:2,c:3}
$.extend(obj1,obj2,obj3) 将 obj2 obj3 的内容扩展到obj1上 obj1={a:1,b:3,c:3,d:5} 出现相同属性的,会覆盖。
var obj4={}
$.extend(obj4,obj1,obj2,obj3) 将 obj2 obj3 的内容扩展到obj1上 obj1={a:1,b:3,c:3,d:5} 出现相同属性的,会覆盖。obj4=obj1={a:1,b:3,c:3,d:5} 如果不想修改obj1 可以设置空变量,将需要扩展的值,扩展到obj4里。
题目4: jQuery 的链式调用是什么?
使用jQuery方法时,对象方法返回的是对象本身,可以调用对此对象的其他jQuery方法,实现连续调用多个方法
$("#mybtn").css("width","100px")
.css("height","100px")
.css("background","red");
题目5: jQuery 中 data 函数的作用
在匹配元素上存储任意相关数据,或返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。 .data()方法允许我们在DOM上绑定任意类型的数据,避免了循环引用的内存泄漏的风险。
向元素附加数据,然后取回该数据:
$("#btn1").click(function(){
$("div").data("greeting", "Hello World");
});
$("#btn2").click(function(){
alert($("div").data("greeting"));
});
题目6:
写出以下功能对应的 jQuery 方法:
-
给元素 $node 添加 class active,给元素 $noed 删除 class active
$node.addClass('active') $node.removeClass('active')
-
展示元素$node, 隐藏元素$node
$node.show() $node.hidden()
-
获取元素$node 的 属性: id、src、title, 修改以上属性
$node.attr('id') $node.attr('src') $node.attr('title') $node.attr('id':'btn','src':'test',title':'yourtitle')
-
给$node 添加自定义属性data-src
$node.attr('data-src':'./img') -
在$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.height() //
$node.innerHeight() // 包括padding,不包括border
$node.innerWidth() // 包括padding,不包括border
$node.outerHeight() // 包括padding、border、选择性margin
$node.outerWidth() // 包括padding、border、选择性margin -
获取窗口滚动条垂直滚动距离
$(window).scrollTop() -
获取$node 到根节点水平、垂直偏移距离
$node.offset().top
$node.offset().left -
修改$node 的样式,字体颜色设置红色,字体大小设置14px
$node.css("color":"red","font-size":"14px") -
遍历节点,把每个节点里面的文本内容重复一遍
$('li').each(function(index,element){
$(this).text=str
$(this).text(str+str)
}) -
从$ct 里查找 class 为 .item的子元素
$ct.children('.item')
$ct .find('item') -
获取$ct 里面的所有孩子
$ct.children() -
对于$node,向上找到 class 为'.ct'的父亲,在从该父亲找到'.panel'的孩子
$node.parent('.ct').find('.panel') -
获取选择元素的数量
$this.length() -
获取当前元素在兄弟中的排行
$node.index()
题目7 用jQuery实现以下操作
1.当点击$btn 时,让 $btn 的背景色变为红色再变为蓝色
$btn.on('click',function () {
$btn.css("background"."red").setTimeout(function(){
$btn.css("background"."blue")
},500})
2.当窗口滚动时,获取垂直滚动距离
$(document).scrollTop()
3.当鼠标放置到$div上,把$div 背景色改为红色,移出鼠标背景色变为白色
$div.on('mouseover',function () {
var $this=$(this);
$this.css("background"."red")
})
$div.on('mouseout',function () {
var $this=$(this);
$this.css("background"."white")
})
4.当鼠标激活 input 输入框时让输入框边框变为蓝色,当输入框内容改变时把输入框里的文字小写变为大
写,当输入框失去焦点时去掉边框蓝色,控制台展示输入框里的文字
$("input").on('focus',function () {
var $this=$(this);
$this.css("border"."1px solid blue")
})
$("input").on('change',function () {
var $this=$(this);
$this.val($this.val().toUpperCase())
})
$("input").on('blur',function () {
var $this=$(this);
$this.css("border"."1px solid blue")
})
- 当选择 select 后,获取用户选择的内容
<select id="test">
<option value="第一">第一</option>
<option value="第二">第二</option>
<option value="第三">第三</option>
<option value="第四">第四</option>
</select>
获取选择的内容 $('#test option:selected').val();
网友评论