问答
1.说说库和框架的区别?
库的的概念和意义是用来提供一些方法的集合,避免重复定义相同功能的函数,并有一定的模式兼容性。
而所谓框架,更应该是按照开发者按照框架的设计去做一些事,而非简单的工具集的概念,框架可以提供相应的库或者基于库来实现,但库一般不会具备框架的规范性。
他们都是对原生代码的封装,一个注重整体,一个注重细节,框架帮助你解决“代码如何组织”的问题,类库帮助你解决“如何把代码写得更少/巧/强壮”的问题;它们解决的是不同层面的问题。
2.jquery 能做什么?
- jQuery是一个兼容多浏览器的JavaScript库,它封装了很多方法,可以让使用者代码写的更少,更轻松。
- 它的功能有HTML文档操作、事件处理、动画设计和Ajax交互。
3.jquery 对象和 DOM 原生对象有什么区别?如何转化?
Jquery 对象是 DOM 原生对象包装后形成的。他们都有自己特定的方法,不能相互使用。
转化:
- jQuery对象转成DOM对象
var $div = $('#div');//jquery对象
var div = $div[0];//[index]方式转为DOM对象
- DOM对象转成jQuery对象
var div = document.getElementById('div');//DOM对象
var $div = $(div);//用$()转化
4.jquery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?
- bind:为一个元素绑定一个事件处理程序。在jQuery 3.0中,.bind()已被标记为弃用。
$('#foo').bind('click', function() {
alert('User clicked on "foo."');
});
- unbind:用.bind()方法绑定的事件处理程序可以使用.unbind()移除。在jQuery 3.0中,.unbind()已被标记为弃用。
$('#foo').unbind();
- delegate:事件代理,在jQuery 3.0中,.delegate()已被标记为弃用。
$("body").delegate("p", "click", function() {
$(this).toggleClass("chosen");
});
-
live:该事件会在事件冒泡中传递给其所有的祖辈元素,一直传递到document
对象为止。从jQuery 1.7开始,该函数被标记为已过时;从jQuery 1.9开始被移除。
$("#btn a").live("click",function(){
console.log('1');//如果有新的a元素创建,也会触发该事件。
});
- on:提供绑定事件处理的所有功能。
$( "#div" ).on( "click",function() {
console.log('1');
});
on()方法可以将以上各种事件绑定的方法都替代掉。
- off:移除.on()绑定的事件处理函数。
$("p").off() //除所有段落上的事件:
- on()绑定事件代理:
$('ul').on('click','li',function(){
console.log($(this).text());
})
5.jquery 如何展示/隐藏元素?
- 展示元素:
.show(duration,complete)
duration (默认: 400) 一个字符串或者数字决定动画将运行多久。
complete 在动画完成时执行的函数。
$('#btn').on('click',function(){
$('#div').show(800);
})
- 隐藏元素:
.hide(duration,complete)
$('#btn').on('click',function(){
$('#div').hide(800);
})
6.jquery 动画如何使用?
.animate()根据一组 CSS 属性,执行自定义动画。
语法:.animate( properties , duration , easing , complete )
properties 参数定义形成动画的 CSS 属性。
duration (默认: 400)一个字符串或者数字决定动画将运行多久。("slow", "normal", 或 "fast")或表示动画时长的毫秒数值(如:1000)
easing (默认: swing)一个字符串,表示过渡使用哪种缓动函数。
complete 在动画完成时执行的函数。
如:
$('#btn').on('click',function(){
$('#div').animate({
opacity:0.5,
left:'50px',
height:100px;
},5000)
})
7.如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?
- 获取和设置元素内部HTML内容
$('#ct').html() //获取元素内部HTML内容
$('#ct').html('<div>设置ct内的HTML内容</div>') //设置元素内部HTML内容
- 获取和设置元素内部文本
$('#ct').text()//获取元素内部文本
$('#ct').text('设置ct') //设置元素内部文本
8.如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?
- 获取和设置表单用户输入或者选择的内容
$('.input').val() //获取表单用户输入或者选择的内容
$('.input').val('设置表单内容') //设置表单用户输入或者选择的内容
- 获取和设置元素属性
$('#img').attr('scr') //获取元素属性
$('#img').attr('scr','./images/1.png') //设置元素属性
代码
task25-1:效果预览
task25-2:效果预览 a href="#"会跳转到本页面顶部,一般建议写成javascript:void(0);点了没有反应,写#点了会跳一下。
task25-3:效果预览