题目1: 说说库和框架的区别?
库:库提供了方法,即API。当开发者引入了库以后,可以直接掉用并使用这里面的API。可以当做小工具使用。它的体积较小。常见的库有jQuery.js等。
框架:顾名思义,框架就是有一个支撑结构。相当于一个已经构建好的实体房子,而用户只需在这个房子里添加自己想要的家具等。而框架对于开发者,开发者只需在这个框架中添加自己的东西而实现具体的功能。常见的框架有Angular, React等。
区别:框架和库比较类似,都是代码的集合,不过框架更加具有针对性,可以说是库的升级版,提供一套完整的代码,而不需要自己重组。
题目2: jquery 能做什么?
jQuery是一个Javascript库,可以让用户更简单的进行HTML文档DOM遍历、操作、事件处理、动画,以及使用Ajax。且具有多浏览器兼容性。
题目3: jquery 对象和 DOM 原生对象有什么区别?如何转化?
区别:jquery对象是在DOM原生对象上做了一层包装,只能使用jquery对象方法,不能使用DOM原生对象方法,同理DOM原生对象也不能使用jquery对象方法。
DOM转换jquery对象
var a = document.getElementById('a') //DOM对象
var $b = $(a) //DOM对象转换为jquery对象
jquery对象转换为DOM对象
var a = $('#a')[0]
题目4:jquery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?
$('#a').on('click',function(){
console.log('a') //通过on给元素绑定事件,推荐使用
})
//事件代理
$('ul').on('click','li',function(){
console.log('a')
})
//off是给元素解除绑定事件
$('ul').off()
//bind
$('#a').bind('click',function(){
console.log('a') //相比on,少了一个selector参数,selector可以过滤制定元素,已弃用
})
//unbind
$('#a').unbind() //和off效果一样,和bind一样,没有selector参数,已弃用
//delegate为被选元素的子元素添加事件
$('#a').delegate('#btn','click',function(){
console.log('a')
})
//live给匹配到的元素添加事件,现在匹配到的和将来匹配到都添加事件
$('#a').live('click', function() {
console.log('a');
});
题目5:jquery 如何展示/隐藏元素?
<p>jquery展示和隐藏元素</p>
<button id="show" type="button">显示</button>
<button id="hide" type="button">隐藏</button>
<script>
$('#show').on('click',function(){
$('p').show()
})
$('#hide').on('click',function(){
$('p').hide()
})
</script>
题目6: jquery 动画如何使用?
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
<style>
#an{
height:100px;
width:500px;
border:3px solid red;
}
#but{
margin:20px
}
</style>
</head>
<body>
<div id="an"></div>
<button id="but">点一下试试</button>
<script>
$('#but').on('click',function(){
$('#an').animate({height:'200px',width:'300px'},1000)
})
</script>
</body>
</html>
题目7:如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?
//获取html内容
$('#a').html()
//设置html内容
$('#a').html('<span>aaaa</span>')
//获取text内容
$('#a').text()
//设置text内容
$('#a').text('设置text')
题目8:如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?
//获取表单用户输入或者选择的内容
$('#inputVal').val()
//设置表单用户输入或者选择的内容
$('#inputVal').val('设置')
//获取元素属性
$('.text1').attr('title')
//设置元素属性
$('.text1').attr('title', 'input-text')