jQuery选择器_Dom操作_样式_事件处理_动画

题目1: jQuery 能做什么?
将原生DOM元素的功能实现并且满足良好的兼容性,最重要的是,可以简化代码。
jquery是一个丰富的js库,内部对js的很多复杂的方法进行了封装和加工,比如js很多方法名很冗长,jquery封装后方法就变得简便了,也考虑到了跨浏览器兼容问题,这样我们用js时需要考虑的很多问题它都帮我们解决了,这样我们使用时就比js代码要方便,高效的多。

题目2: jQuery 对象和 DOM 原生对象有什么区别?如何转化?

  • 区别
  • jquery选择器得到的jquery对象和标准的 javascript中的document.getElementById()取得的dom对象是两种不同的对象类型,两者不等价;
  • jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法. 乱使用会报错。
  • 转换
  • jQuery对象是一个数据对象,通过[index]的方法(就是通过下标索引寻找dom,进行操作)
  如:var $v = $("#v") ; //jQuery对象
  var v = $v[0]; //DOM对象
  alert(v.checked) //检测这个checkbox是否被选中

jQuery本身提供,通过.get(index)方法

  如:var $v = $("#v"); //jQuery对象
  var v = $v.get(0); //DOM对象
  alert(v.checked) //检测这个checkbox是否被选中

注:其实两者都是同一个道理,即通过索引下标的方式,来寻找dom进行转换。

  • DOM对象转成jQuery对象:
    对于DOM对象,只需用$()把DOM对象包装起来,就可得到jQuery对象
  如:var v=document.getElementById("v"); //DOM对象
  var $v=$(v); //jQuery对象

**题目3:jQuery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?
**

  • bin():为一个元素绑定一个或多个事件。
$(‘button’).bind(‘click’,function(){console.log(this)});
$(‘p’).bind(‘mouseenter mouseleave’,function(){$(this).toggleClass(‘change’)});
  • unbind():$(‘p’)解除该元素绑定的事件。
  • delegate():为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数;适用于当前或未来的元素(比如由脚本创建的新元素)。
  • live():这种方法是将页面的document元素作为事件代理元素,太消耗资源,已经过时。在新版本中推荐用.on()法,即时在旧版本中,也推荐使用.delegate()方法来取代.live()方法。
  • on():在选定的元素上绑定一个或多个事件处理函数,提供绑定事件处理的所有功能。

$('button').on('click',function(){
$('.test').append('<p>新增内容'+ ($('p').length+1) +'</p>')
console.log($('p').length)
})


 -  .on( events [,selector ] [,data ], handler(eventObject) )

看起来参数及其复杂,我们看一下各个参数的意思

events:一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如"click", "keydown.myPlugin", 或者 ".myPlugin"

selector:一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素。如果选择器是 null 或者忽略了该选择器,那么被选中的元素总是能触发事件

data:当一个事件被触发时,要传递给事件处理函数的event.data

handler(eventObject):事件被触发时,执行的函数。若该函数只是要执行return false的话,那么该参数位置可以直接简写成 false

看几个例子

// 普通事件绑定,最简单的用法
$('div').on('click', function(e){
console.log(this);
console.log(e);
});

// 事件委托或者事件代理,想让div 下面所有的span绑定事件,可以把事件绑定到div上
$('div').on('click', 'span', function(e){
console.log(this);
console.log(e);
});

// 可以在绑定的时候给事件处理程序传递一些参数
$('div').on('click', {name: 'Byron', age: 24}, function(e){
console.log(e.data);
});


- .off( events [, selector ] [, handler ] ):移除一个事件处理函数

function aClick() {
$("div").show().fadeOut("slow");
}

$("#bind").click(function () {
$("body").on("click", "#theone", aClick)
.find("#theone").text("Can Click!");
});

$("#unbind").click(function () {
$("body").off("click", "#theone", aClick)
.find("#theone").text("Does nothing...");
});

**题目4:jQuery 如何展示/隐藏元素?**
- .hide([duration ] [,easing ] [,complete ])

用于隐藏元素,没有参数的时候等同于直接设置display属性

.css('display', 'none')

duration:动画持续多久
easing:表示过渡使用哪种缓动函数,jQuery自身提供"linear" 和 "swing"
complete:在动画完成时执行的函数
看几个例子

$('.target').hide();

$('#book').hide(300, function() {
alert('Animation complete.');
});

$('#book').hide(300, 'linear', function() {
alert('Animation complete.');
});


- .show( [duration ] [, easing ] [, complete ] )
用于显示元素,用法和hide类似
- .toggle( [duration ] [, easing ] [, complete ] )
事件处理套件也有一个名为.toggle()方法。哪一个被调用取决于传递的参数的设置
用来切换元素的隐藏、显示,类似于toggleClass,用法和show、hide类似

**题目5: jQuery 动画如何使用?**
- animate()方法用于创建自定义动画。
.animate({params}, speed, callback);

 - params 定义形成动画的 CSS 属性(动画结束后的CSS)必选
 - speed 规定效果的时长.值:slow,fast或毫秒,可选
 - callback 动画完成后所执行的函数,可选
 - .delay()设置一个定时器,以延迟 执行队列中后续的项目。
 - .clearQueue()从队列中删除所有还没有运行过的项目。
 - .stop()在匹配的元素上停止当前正在运行的动画。
 - .finish()针对匹配的元素 停止当前 正在运行的动画,删除所有 队列中的动画,并结束所有 动画

**题目6:如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?**
- $(‘selector’).html():获取元素内部HTML。
- $(‘selector’).html(‘…’):设置元素内部HTML。
- $(‘selector’).text():获取元素内部文本。
- $(‘selector’).text(‘…’):设置元素内部文本。

**题目7:如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?**
- $(‘selector’).val():获取表单用户输入值;
- $(‘selector’).val(‘…’):设置输入值;
- $(‘selector’).attr(‘name’):获取元素属性;
- $(‘selector’).attr(‘name’,’xxx’):设置元素属性的值;
**题目8: 使用 jQuery实现如下效果**
[deml1](http://book.jirengu.com/jirengu-inc/jrg-renwu5/%E5%90%B4%E6%80%9D%E6%95%8F/js_task_14/demo1.html)
**题目9:. 使用 jQuery 实现如下效果**
[demo2](http://book.jirengu.com/jirengu-inc/jrg-renwu5/%E5%90%B4%E6%80%9D%E6%95%8F/js_task_14/demo2.html)
**题目10:实现如下效果**
[demo3](http://book.jirengu.com/jirengu-inc/jrg-renwu5/%E5%90%B4%E6%80%9D%E6%95%8F/js_task_14/demo-3.html)
**题目11: 模仿视频6,完成 左右切换的 Tab 效果**
[demo4](http://book.jirengu.com/jirengu-inc/jrg-renwu5/%E5%90%B4%E6%80%9D%E6%95%8F/js_task_14/demo-4.html)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容