任务25-jquery DOM&事件

1. 说说库和框架的区别?

  • 库(library):我们可以简单的认为它就是一个工具箱,里面有可以直接拿来使用的方法和工具,以及可以调用的API。一些已经封装好了的函数可以实现特定的效果,只需要在使用的时候用少量的代码去调动,这里的控制权在于 你,你来决定怎样使用库。
  • 框架(framework):可以简单理解为搭好的模型架子,我们可以直接往里面添加内容或进行装饰。而框架对于开发者,开发者只需在这个框架中添加自己的东西而实现具体的功能。常见的框架有Angular, React,Vue等。

2. jquery 能做什么?

jQuery是一个兼容多浏览器的JavaScript库,核心理念是write less,do more,它的语法设计可以使开发更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax等。除此之外,jQuery还提供API让开发者编写插件。总之,使用jQuery能使开发者很轻松的开发出功能强大的静态或动态页面。

3. jquery 对象和 DOM 原生对象有什么区别?如何转化?

  • 区别:
    jQuery对象是通过jQuery包装DOM对象后产生的对象,只能使用jQuery里的方法,无法使用DOM对象的任何方法。同样,DOM原生对象也不能使用jQuery里的方法。
  • 转化:
    • jQuery -> 原生:jQuery对象是一个类似数组的对象,可以使用[index]或者get(index)方法转换为DOM对象,如:
      <pre>var $p1 = $('.p1'); //jQuery对象 var p1 = $p1[0];//DOM对象 var p1 = $p1.get(0);//DOM对象</pre>
  • 原生 -> jQuery:用$()把DOM对象包起来,就可以转化成jQuery对象,如:
    <pre>var p1 = document.getElementById('div1');//DOM对象 var $p1 = $(p1);//jQuery对象</pre>

4. jquery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?

绑定事件:在一个元素上增加一个事件类型和要实现的事件。绑定事件的方法有.bind()、.live()、.delegate()和.on()。.unbind()、.die()、.undelegate()和.off()分别是上述对应的解除绑定的方法。

  • bind:为一个元素绑定一个事件处理程序,在jQuery3.0版本中,已被标记为弃用。如:
    <pre>$("#btn").bind("click",function(){ console.log($(this).text()); });</pre>
  • unbind:用来解除bind绑定的事件。同样在jQuery3.0版本中,标记为弃用。如:
    <pre>$("#btn").unbind();</pre>
  • live:附加一个事件处理器到匹配目前选择器的所有元素,现在和未来。在新版本中推荐用.on()方法,即时在旧版本中,也推荐使用.delegate()方法来取代.live()方法。如:
    <pre>$("#btn a").live("click",function(){ console.log($(this).text());//如果有新的a元素创建,也会触发该事件。 });</pre>
  • delegate():为所有匹配选择器(selector参数)的元素绑定一个处理器到一个或多个事件处理函数,基于一个指定的根元素的子集,匹配的元素包括那些目前已经匹配到的元素,也包括那些今后可能匹配到的元素。在jQuery3.0中,delegate()也被标记为弃用。如:
    <pre>$("#btn").delegate("click","a",function(){ console.log($(this).text());//事件冒泡到btn元素上,只有它的子元素a才会触发。 });</pre>
  • on:在选定的元素上绑定一个或多个事件处理函数。它提供绑定事件处理的所有功能。如:
    <pre>$("#btn").on("click",function(){ console.log($"clicked"); });</pre>
  • off:移除.on()绑定的事件处理函数。
    <pre>$("#btn").off();</pre>
    推荐使用on():这个方法可以将以上各种事件绑定的方法都替代掉。
    on绑定事件代理:
    <pre>$("#btn").on("click","a",function(){ console.log($(this).text()); });</pre>

5. jquery 如何展示/隐藏元素?

  • 展示:
    语法:$(selector).show(speed,callback);
    可选的参数speed:规定元素从隐藏到完全可见的速度,默认为0。
    可选的参数callback:show函数执行完之后,要执行的函数。
    本质上show方法是修改元素的display为block。
    代码如:
    <pre>$('#btn').on('click', function() { $('.div1').show(1000); // 表示以1s的速度显示div });</pre>
  • 隐藏:
    语法:$(selector).hide(speed,callback);
    选的参数speed:规定元素从隐藏到完全可见的速度,默认为0。
    可选的参数callback:show函数执行完之后,要执行的函数。
    本质上show方法是修改元素的display为none。
    代码:
    <pre>$('#btn').on('click', function() { $('.div1').hide(1000); // 表示以1s的速度隐藏div });</pre>

DEMO:http://htmlpreview.github.io/?https://github.com/jirengu-inc/jrg-renwu6/blob/master/homework/%E6%9D%8E%E7%AB%8B%E4%B8%BD/%E4%BB%BB%E5%8A%A125/%E9%97%AE%E7%AD%945.html

6. jquery 动画如何使用?

jQuery animate() 方法用于创建自定义动画。
语法:$(selector).animate({params},speed,callback);
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
如:
<pre>$("#btn").on("click",function(){ $(".div1").animate({ width:"100px",//宽度变为100px height:"100px",//高度变为100px left:"50px"//向左移动50px },5000)//持续5秒 animate(){ //加入多个动画 }; });</pre>

DEMO:http://htmlpreview.github.io/?https://github.com/jirengu-inc/jrg-renwu6/blob/master/homework/%E6%9D%8E%E7%AB%8B%E4%B8%BD/%E4%BB%BB%E5%8A%A125/%E9%97%AE%E7%AD%946.html

7. 如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?

  • 用html()方法可以设置和获取元素内部HTML内容。
    <pre>console.log($("#test").html());//获取内部html console.log($("#test").html("<span>hello</span>"));//改变内部html</pre>
  • 用text()方法可以设置和获取元素内部文本内容。
    <pre>console.log($("#test").text());//获取内部text console.log($("#test").text("改变text"));//改变内部text值</pre>

8. 如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?

  • 通过val()方法可以设置和获取表单用户输入或者选择的内容
    <pre>console.log($('.text1').val()); //获得class为text1 console.log($('.text1').val('饥人谷'));//</pre>

  • 通过attr() 方法可以设置或返回元素的属性
    <pre>console.log($('#img').attr('src')); // console.log($('#img').attr('data-src','./images/1.png'));//</pre>

DEMO:http://htmlpreview.github.io/?https://github.com/jirengu-inc/jrg-renwu6/blob/master/homework/%E6%9D%8E%E7%AB%8B%E4%B8%BD/%E4%BB%BB%E5%8A%A125/%E9%97%AE%E7%AD%947%268.html

本文版权归本人和饥人谷所有,转载请注明来源。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 问答 1.说说库和框架的区别? 类库(Class Library):类库就是一些类的集合,只要我们将一些可以复用的...
    鸿鹄飞天阅读 261评论 0 1
  • 问答 1、说说库和框架的区别? 库Library ( 简写 Lib ),库是将代码集合成的一个产品,供程序员调用。...
    咸吧阅读 169评论 0 1
  • 问答部分 一、说说库和框架的区别? 库~是一个提供了封装好很多方法的工具,在这个工具里面,用与不用都是由你决定,控...
    dengpan阅读 345评论 1 2
  • 题目1: jQuery 能做什么? 方便快捷获取DOM元素如果使用纯JavaScript的方式来遍历DOM以及查找...
    Taaaaaaaurus阅读 302评论 0 1
  • 问答: 1.说说库和框架的区别? 库就是一些已经封装好了的函数,这些函数可以实现特定的效果,只需要在使用的时候用少...
    饥人谷_任磊阅读 253评论 0 1