jQuery技术

理解jQuery对象$.html

字号+ 作者:H5之家 来源:H5之家 2017-11-22 13:02 我要评论( )

如果要比喻jQuery和原生javascript的关系,我个人认为是自动档和手动档汽车的区别。使用原生javascript,可以知道离合器以及档位的作用;而使用jQuery,则把离合

理解jQuery对象$.html_jQuery中html方法
2017-11-16 13:36:08  By: dwtedx 前面的话

如果要比喻jQuery和原生javascript的关系,我个人认为是自动档和手动档汽车的区别。使用原生javascript,可以知道离合器以及档位的作用;而使用jQuery,则把离合器和手动档位封装到函数,直接前进、后退或驻车即可。所以,熟练使用原生javascript,再去使用jQuery是一个很自然的步骤。从本文开始,将陆续介绍jQuery的相关内容,并给出相关的原生javascript实现。接下来,将详细介绍jQuery对象$

 

$对象

说起jQuery,最明显的标志,毫无疑问,就是美元符号$,美元符号其实是jquery的简写。而使用$()包装的对象就是jQuery对象

与jQuery对象相对应的就是DOM对象,DOM对象其实就是DOM元素节点对象

如果直接写document,则指的是document的DOM元素对象

document.onclick = function(){ alert(´dom´); }


而如果用$()包括起来,如$(document),是jQuery(document)的简写形式,则指的是jQuery对象

<script src="jquery-3.1.0.js"></script> <script> console.log(jQuery(document));//[document] console.log($(document));//[document] console.log(document);//#document </script>


[注意]jQuery对象无法使用DOM对象的方法,DOM对象也无法使用jQuery对象的方法

<script src="jquery-3.1.0.js"></script> <script> //无反应 $(document).onclick = function(){ alert(0); }; //Uncaught TypeError: document.click is not a function document.click(function(){ alert(1); }); </script>


转换

【1】DOM转jQuery对象

对于一个jQuery对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象


【2】jQuery转DOM对象

jQuery是一个类数组对象,可以通过[index]或get(index)的方法得到相应的DOM对象

console.log(document === $(document)[0]);//true console.log(document === $(document).get(0));//true


共存

如果jQuery对象和DOM对象指向同一对象,绑定不同函数,则函数会按照顺序依次执行

//先弹出0,再弹出1 document.onclick = function(){ alert(0); } $(document).click(function(){ alert(1); });


不报错

如果使用DOM对象,为不存在的DOM对象设置样式会报错

//Uncaught TypeError: Cannot read property ´style´ of null document.getElementById(´test´).style.color = ´red´;


而使用jQuery对象,为不存在的jQuery对象设置样式不会报错

$(´#test´).css(´color´,´red´);

 

判断存在

一般地,DOM对象在使用之前需要判断存在,防止出错

if(document.getElementById(´#test´)){ document.getElementById(´#test´).style.color = ´red´; }


对于jQuery对象来说,因为$()获取到的永远是对象,即使网页上没有该元素。所以不能采用下面方式判断

if($(#test)){ // }


应该根据获取到元素的长度来判断

if($(#test).length){ // }


或者转换成DOM对象来判断

if($(#test)[0]){ // }


最后

最后要提一下jQuery的版本问题。jQuery从2.0版本开始不再支持IE8-浏览器,且去掉了一些过时的API,从而使体积更小,运行速率更高。所以,如果有兼容IE8-浏览器的需求,需要使用jQuery1.*版本

若资源对你有帮助、浏览后有很大收获、不妨、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 关于jquery中on的用法,新发现不理解

    关于jquery中on的用法,新发现不理解

    2017-06-20 16:01

  • 深入理解jQuery的Event机制

    深入理解jQuery的Event机制

    2017-06-20 08:00

  • 理解jQuery解析JSON数据对象原理

    理解jQuery解析JSON数据对象原理

    2014-11-16 22:49

网友点评