1. 说说库和框架的区别?
- 库是多个“工具”的集合,即封装了某类方法函数,当需要时可以直接调用,不必重复编写代码;
- 框架是为解决某个或某类问题而提供的一个打包方案。
2. jquery 能做什么?
- JQ封装了绝大部分原生JS的方法,可以利用JQ进行获取操作文档对象、选择DOM元素、事件处理、制作动画效果、修改css、使用Ajax等操作。
3. jquery 对象和 DOM 原生对象有什么区别?如何转化?
- 通过jquery获取的对象不能使用原生JS方法,而通过原生JS方法获取的DOM原生对象也不能直接使用jquery方法。但是二者可以互相转化。
var div = document.getElementsByTagName('#btn');
var $div = $(div) //将原生JS对象转化为JQ对象
var div = $div[0] //将JQ对象转化为原生JS对象
4. jquery中如何绑定事件?bind
、unbind
、delegate
、live
、on
、off
都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?
<button id="btn">点我</button>
<script src="jQuery\jquery-3.1.0.min.js"></script>
<script>
var $btn = $('#btn');
$btn.on('click', function() {
console.log('test')
})
</script>
-
bind
会给所有匹配的元素绑定事件,当元素数量多时,会影响性能;
-
unbind
解除bind
绑定的事件;
-
delegate
将事件处理函数绑定在指定的根元素上,利用事件冒泡来处理指定子元素上的事件;
-
live
把函数绑定到$(document)元素上,并将事件名称和目标元素作为参数。任何时候只要有事件冒泡到document节点上,它就查看与相应的事件和目标函数是否匹配并以此决定是否执行函数;
-
off()
被用来解绑on()
方法所绑定的事件。
5. jquery 如何展示/隐藏元素?
- 通过
.show([duration ] [,easing ] [,complete ]))
方法展示元素,当参数为空时相当于通过CSS操作display属性。其中元素分别代表:
- duration:动画持续时间;
- easing:表示过渡使用哪种缓动函数,jQuery自身提供"linear" 和 "swing"
- complete:动画完成时执行的函数;
- 通过
.hide([duration][,easing][,complete])
方法隐藏元素,使用方法与.show()
类似;
- 通过
.toggle( [duration ] [, easing ] [, complete ] )
方法可以交互实现展示/隐藏,用法与.hide() .show()
类似。
6. jquery 动画如何使用?
- 渐变
- 淡入
.fadeIn( [duration ] [, easing ] [, complete ] )
- 淡出
.fadeOut( [duration ] [, easing ] [, complete ] )
- 调整匹配元素的透明度
.fadeTo( duration , opacity[, easing ] [, complete ] )
-
.fadeToggle( [duration ] [, easing ] [, complete ] )
通过匹配的元素的不透明度动画,来显示或隐藏它们,方法执行匹配元素的不透明度动画。当被可见元素调用时,元素不透明度一旦达到0,display样式属性设置为none ,所以元素不再影响页面的布局。
- 滑动
- 滑动显示
.slideDown( [duration ] [, easing ] [, complete ] )
- 滑动隐藏
.slideUp( [duration ] [, easing ] [, complete ] )
- 滑动显示或隐藏
.slideToggle( [duration ] [, easing ] [, complete ] )
- 自定义
-
.animate( properties [, duration ] [, easing ] [, complete ] )
,properties
是一个CSS属性和值的对象,动画将根据这组对象移动。
7.如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?
<!-- HTML -->
<div class="wrap">
<ul class="list">
<li>list1</li>
<li>list2</li>
<li>list3</li>
</ul>
</div>
<script>
// 获取html元素
var html = $('.wrap').html();
console.log(html);
// <ul class="list">
// <li>list1</li>
// <li>list2</li>
// <li>list3</li>
// </ul>
// 获取内部文本
var text = $('.wrap').text();
console.log(text);
// list1
// list2
// list3
// 修改内部html元素
$('.wrap').html('<p>新的元素</p>');
console.log($('.wrap').html());
// <p>新的元素</p>
// 修改内部文本
$('.wrap').text('新的内容');
console.log($('.wrap').html());
// 新的内容
</script>
8. 如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?
- val():获取匹配的元素集合中第一个元素的当前值value。val(str):设置str为元素的value
- attr(str):获取匹配的元素集合中的元素特定属性的值。attr(str,value)为元素特定属性赋值。.removeAttr()可以删除属性与JS中removeAttribute()函数相似