进阶14 jQuery

题目1: jQuery 能做什么?

jquery是一个丰富的js库,内部对js的很多复杂的方法进行了封装和加工,比如js很多方法名很冗长,jquery封装后方法就变得简便了,也考虑到了跨浏览器兼容问题,这样我们用js时需要考虑的很多问题它都帮我们解决了,这样我们使用时就比js代码要方便,高效的多

  1. 取得文档中的元素。
  2. 修改页面外观。
  3. 改变文档内容。
  4. 响应用户的交互操作。
  5. 为页面添加动态效果。
  6. 无需刷新页面从服务器获取信息。
  7. 简化常用的JavaScript任务,封装部分JavaScript代码,API友好
  8. 统一Ajax操作
题目2: jQuery 对象和 DOM 原生对象有什么区别?如何转化?
  • DOM 原生对象:根据W3C DOM规范,DOM是HTML与XML的应用编程接口(API),是我们用传统的方法(javascript)获得的对象。
  • jQuery 对象:是通过jQuery包装DOM对象后产生的对象,它是一个JavaScript的数组
  • 原生DOM对象转jQuery对象:
var button = document.getElementById('btn');
var button = document.querySelector('#btn');
var $button = $('#btn');
  • jQuery对象转原生DOM对象:
$("wrap li")[0];
$("wrap li").eq(0);
$("wrap li").get(0);
题目3:jQuery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?
绑定事件 作用
bind 用于直接附加一个事件处理程序到元素上(注:在jQuery3.0中,.bind()已被标记为弃用
unbind 用于移除.bind()绑定的事件处理程序(注:在jQuery3.0中,.unbind()已被标记为弃用
delegate 为所有匹配选择器(selector参数)的元素绑定一个或多个事件处理函数,基于一个指定的根元素的子集(匹配的元素包括那些目前已经匹配到的元素,也包括那些今后可能匹配到的元素)(注:在jQuery3.0中,.delegate()已被标记为弃用
live 将委托的事件处理程序附加到一个页面的document元素,从而简化了在页面上动态添加的内容上事件处理的使用(注:在jQuery1.7中,.live()已被标记为弃用
on 在选定的元素上绑定一个或多个事件处理函数(推荐使用.on()方法进行事件绑定
off 移除.on()上绑定的事件处理函数(推荐使用.off()方法进行事件移除

on绑定事件使用事件代理的写法:.on( events [,selector ] [,data ], handler(eventObject) )
例子:

html:
<!DOCTYPE html>
<html>
  <head>
    <script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
    <meta charset="utf-8">
    <title>test</title>
  </head>
  <body>
  <div class="wrap">
     <ul>
       <li>content 1</li>
       <li>content 2</li>
       <li>content 3</li>
     </ul>
  </div>

      <input id='ipt' type='text' value=''>
      <button id='btn'>添加</button>
      <div id="box"></div>
</body>
</html>
js:
$('.wrap>ul').on('click','li',function(){  
// 事件代理,通过input添加的li标签中的内容也会出现在#box的div中
  var str=$(this).text();
  $('#box').text(str);
})
$('#btn').on('click',function(){
  var content=$('#ipt').val();
  $('.wrap>ul').append('<li>'+content+'</li>')
})
题目4:jQuery 如何展示/隐藏元素?
  • 展示元素:.show( [duration ] [, easing ] [, complete ] )
  • 隐藏元素:.hide([duration ] [,easing ] [,complete ])
题目5: jQuery 动画如何使用?

.animate()是一种根据一组 CSS 属性,执行自定义动画的方法,其语法如下:

.animate(properties[,duration][,easing][,complete])
.animate( properties, options )

properties:一个CSS属性和值的对象,动画将根据这组对象移动
duration:一个字符串或者数字决定动画将运行多久
easing:一个字符串,表示过渡使用哪种缓动函数
complete:在动画完成时执行的函数。
示例:

<!DOCTYPE html>
<html>
<head>
  <script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <button id="btnHide">隐藏</button>
  <button id="btn-show">显示</button>
  <button id="btn-tog">切换</button>
  <button id="btn-in">渐变-淡入</button>
  <button id="btn-out">渐变-淡出</button>
  <button id="btn-up">滑动-向上</button>
  <button id="btn-down">滑动-向下</button>
  <button id="btn-ani">动画</button>
  <button id="btn-stp">暂停</button>
  <button id="btn-fnh">归位</button>
  <div id="box"></div>
</body>
</html>
css:
#box {
  margin: 10px;
  width: 50px;
  height: 50px;
  background-color: #aaa;
  position: relative;
}
button {
  margin-bottom: 10px;
}
js:
var $box=$('#box');
$('#btnHide').on('click',function(){
   $box.hide();
});
$('#btn-show').on('click',function(){
   $box.show(2000);
})
$('#btn-tog').on('click',function(){
   $box.toggle(1000);
})
$('#btn-in').on('click',function(){
   $box.fadeIn(2000);
})
$('#btn-out').on('click',function(){
   $box.fadeOut();
})
$('#btn-up').on('click',function(){
   $box.slideUp();
})
$('#btn-down').on('click',function(){
   $box.slideDown();
}) 
$('#btn-ani').on('click',function(){
   $box.css({left:'0px',top:'0px'})
   //链式调用
   $box.animate({width:'100px',height:'100px'}).animate({left:'200px'}).animate({top:'200px'})
   $box.animate({left:'0px'})
       .animate({top:'0px'})
   $box.animate({width:'50px',height:'50px'})

// var actions=[
//        {left:'0px',top:'0px'},
//        {width:'100px',height:'100px'},
//        {left:'200px'},
//        {top:'200px'},
//        {left:'0px'},
//        {top:'0px'},
//        {width:'50px',height:'50px'}
//   ]
//   actions.forEach(function(action,idx){
//      $box.animate(action)
//   })
})
$('#btn-stp').on('click',function(){
   $box.stop();
})
$('#btn-fnh').on('click',function(){
   $box.finish();
}) 
动画.png
题目6:如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?
  • $(‘selector’).html():获取元素内部HTML。
  • $(‘selector’).html(‘…’):设置元素内部HTML。
  • $(‘selector’).text():获取元素内部文本。
  • $(‘selector’).text(‘…’):设置元素内部文本。
题目7:如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?
  • .val()获取表单用户输入的内容
  • .val(value)设置表单用户输入的内容
  • .attr('name')获取元素属性
  • .attr('name','value')设置元素属性的值
题目8: 使用 jQuery实现如下效果

导航-代码

题目9:. 使用 jQuery 实现如下效果

2个Tab-代码

题目10:实现如下效果

事件代理-代码

题目11: 模仿视频6,完成 左右切换的 Tab 效果

Tab左右切换-代码

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

推荐阅读更多精彩内容

  • 题目1: jQuery 能做什么? 选择网页元素 改变结果集 元素的操作:取值和赋值 元素的操作:移动 元素的操作...
    cheneyzhangch阅读 421评论 0 1
  • 题目1: jQuery 能做什么? jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。它...
    饥人谷_星璇阅读 152评论 0 0
  • 题目1: jQuery 能做什么? jQuery是一个快速、简洁的JavaScript框架,是继Prototype...
    FLYSASA阅读 337评论 0 2
  • 1: jQuery 能做什么? 1. 选择网页元素 可以当作CSS选择器使用,简单的比如 $('#id'),复杂的...
    晓风残月1994阅读 293评论 0 1
  • 师北宸21天训练营 蓝天白云下面一条晾衣绳,晾衣绳上面晾着白衬衣,这样的图片让你想到了什么呢? 这张图片是我右边的...
    安好_84a8阅读 108评论 0 0