jquery DOM&事件

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

  • 库:用来提供一些方法的集合,避免重复定义相同功能的函数并具有一定的模式兼容性,
  • 框架,规范开发者按照框架的设计去做一些事,而非简单的工具集的概念,框架可以提供相应的库或者基于库来实现,但库一般不会具备框架的规范性。

2.jquery 能做什么?

jQuery是一个轻量级的Javascript库,拥有强大的选择器,核心依然是Javascript,所以凡是Javascript能做的事,jQuery都能做。

  • 样式操作
$("ele:odd").css("color","olive")
$("ele:has(span)").css({
        "font-size" : "20px",
        "border" : "1px solid red",
        "background" : "pink",
})
  • DOM操作
$("ele").append("<div>xxxxxx</div>")
$("ele").find(".class")
$("li").add("p")   //将p加到li的合集中一起设置样式
  • 事件
    $ele.on(event [,selector] [,data] ,handler(obj)),方括号内为可选参数。
//事件代理,事件绑定在ele上
$("ele").on("click", "li", function(e){
    alert(e.target.textContent)
})
//elert 出 “hello candy”
$(".btn").on("click", {name:"candy"}, function(e){
    alert("hello" + event.data.name)  
})
  • 动画
// 如下,三个动画会顺次执行
$("div").on("click",function(){
    $(this).animate({height:"500px"},"slow")
           .animate({"border":"1px solid green","border-radius": "50%"})
           .animate(
              { width: "+=100px"},    
              { duration:3000,      
                step: function(now,fx){
                    $("p").html("当前宽度:"+now);   //now是动画当前值,这里即是当前高度值
                }
              }
            )
  })

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

jquery对象是 DOM 原生对象包装后形成的。 Jquery对象有自己特有的方法(对原生 DOM 对象方法的封装)。DOM 原生对象只能用 DOM 对象的方法, Jquery 对象 只能用 Jquery 对象的方法。

  • DOM原生对象转jquery对象,只需加上$()
var box=document.getElementsByTagName("div")[0];  //box是DOM对象
var $box=$(box);   // $box是jqeury对象
$box.css("color","red")   //使用jquery方法
  • jquery对象转DOM对象,通过索引或 .get()方法
// $("div")是jquery对象,是所有div的合集
var box=$("div")[0]      //方法一:,box是DOM对象
var box=$("div").get(0)     //方法二:box是DOM对象
box.style.color="red";  //使用DOM对象的方法

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

绑定事件的方法有.bind()、.live()、.delegate() 和 .on(),
对应的解除绑定的方法分别是 .unbind()、.die()、.undelegate() 和 .off()。

  • bind( ):为一个元素绑定一个事件处理程序,在jQuery3.0版本中,已被标记为弃用。
$( ele ).bind( "click", function( e ) {} ); 
//相当于下面on( )的写法
$( ele ).on( "click", function( e ) {} ); 
  • unbind( ):用来解除bind绑定的事件。同样在jQuery3.0版本中,标记为弃用
$(ele).unbind();
  • live( ): 事件代理机制,委托给$(document)
$( "ele" ).live( "click", function( e ) {} ); 
//相当于下面on( )的写法
$( document ).on( "click", "ele", function( e ) {} ); 
  • delegate( ), 事件代理机制,委托给$( "#members" )
$( "#members" ).delegate( "li a", "click", function( e ) {} );
//相当于下面on( )的写法
$( "#members" ).on( "click", "li a", function( e ) {} ); 
  • on( )
    语法:$ele.on(event [,selector] [,data] ,handler(obj)) ,方括号内为可选参数。
$("ele").on("click", "li", {name:"candy"}, function(e){ 
      console.log(e.target.textContent)  //打印出所点击的li标签中的内容
      console.log("hello" + event.data.name)   // hello candy
})
  • off( ) 删除绑定的事件
$("ele").off("click", "mouseup")   //删除绑定在元素上的click和mouseup事件
$("ele").off()   //删除绑定在元素上的所有事件

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

  • 展示: .show()
    语法:$(selector).show(speed,callback) ;
    speed:可选参数,规定元素从隐藏到完全可见的速度,默认为0,也可写fast(200ms)或slow(600ms)。
    callback:show函数执行完之后,要执行的函数。本质上show方法是修改元素的display为block。
$('#btn').on('click', function() { 
    $('.div1').show("slow",function(){
          alert("动画结束")
    }); 
});
  • 隐藏: .hide()
    语法:$(selector).show(speed,callback) ;
    speed:可选参数,规定元素从可见到完全隐藏的速度,默认为0,也可写fast(200ms)或slow(600ms)。
    callback:hide函数执行完之后,要执行的函数。本质上hide方法是修改元素的display为block。
$('#btn').on('click', function() { 
    $('.div1').hide(3000,function(){
          alert("动画结束")
    }); 
});

6.jquery 动画如何使用?

语法:语法:$(selector).animate({params} [,speed] [,callback]);

$("#btn").on("click",function(){ 
      $(".div1").animate({
          width:"100px",
          height:"100px",
          left:"50px"//向左移动50px ,(前提是设置过定位,css中也能实现移动)
        },5000)
       .animate({ },3000);
       .animate({ });
});

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

  • 用html()方法可以设置和获取元素内部HTML内容。
    需要注意的是,.html()获取的是匹配元素集合中第一个元素的Html内容(包括html标签),.html(string)设置的是匹配元素集合中每个元素的html内容。
  • 用text()方法可以设置和获取元素内部文本内容。
    需要注意的是,.text()获取的是匹配元素集合中每个元素的(包括它们的后代)文本的合并,text(string)设置的是匹配元素集合中每个元素的文本。
<div>AA
      <p>BB
        <span>CC</span>
      </p>
    </div>
<div>aa
     <p>bb
        <span>cc</span>
     </p>
</div>
<script >
      $("div").html()  // 返回的是第一个div中的html,"AA<p>BB<span>CC</span></p>"
      $("div").text() //返回的是两个div(包括它们的后代)的文本的合集,"AABBCCaabbcc"
      $("div").html("<span>hh</span>")  //[<div><span>hh</span>​​</div>​, <div><span>hh</span></div>​]
      $("div").text("kk") //[<div>​kk​</div>​, <div>​kk​</div>​]
</script>

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

  • 通过val()方法可以设置和获取表单用户输入或者选择的内容
    需要注意的是,获取的的是匹配元素集合中第一个元素的当前值,设置的是匹配元素集合中每个元素的值
$('input').val();   //获取所有匹配的input集合中的第一个input的value值
$('input').val('饥人谷');  //设置所有input的value值为“饥人谷”
  • 通过attr() 方法可以设置或返回元素的属性。
$('img').attr('src');   //获取所有匹配的input集合中的第一个img的src
/$('img').attr('src','http://');   //设置所有img的src

代码题

题一:效果演示
题二:效果演示
题三:效果演示

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

推荐阅读更多精彩内容

  • 问答部分 一、说说库和框架的区别? 库~是一个提供了封装好很多方法的工具,在这个工具里面,用与不用都是由你决定,控...
    dengpan阅读 347评论 1 2
  • Q&A 1. 库和框架的区别? 库(library):将代码集合成一个产品,供开发者调用,面向对象的代码组织而成的...
    进击的阿群阅读 237评论 0 0
  • 说说库和框架的区别?库(library)就像一套把jacascript重新提取包装的工具包,提供许多工具来简化编写...
    老虎爱吃母鸡阅读 259评论 0 1
  • 问答 说说库和框架的区别? 库为 Library ( 简写 Lib ),框架为 Framework。 库是将代码集...
    coolheadedY阅读 220评论 0 1
  • 1. 说说库和框架的区别? 库(library):我们可以简单的认为它就是一个工具箱,里面有可以直接拿来使用的方法...
    小木子2016阅读 206评论 0 1