jQuery、DOM对象傻傻分不清楚

JS、Jquery技术学习 https://www.itkc8.com   

初学jQuery时,经常分辨不清楚哪些是jQuery对象,哪些是DOM对象。这是十分不好的现象。必须明确区分何为jQuery对象、何为DOM对象,对于后续的学习、理解才更方便。

        先从DOM对象开始,之后在谈谈jQuery对象(jq对象基于DOM对象)。

DOM、DOM对象

       DOM(Document Object Model,文档对象模型),DOM是W3C的标准。定义了访问HTML和XML文档的标准。

       文档对象模型是中立于平台和语言的接口,允许程序和脚本动态的访问和更新文档的内容、结构以及样式,更具体来说就是我们可以通过js、jQuery代码动态的更新某个html元素的样式、属性等。

       W3C DOM标准分为3部分:

             核心DOM-针对任何结构化文档的标准模型。

             XML DOM-针对XML文档的标准模型。

             HTML DOM-针对HTML文档的标准模型。

        这里我们关注的是HTML DOM以及其是如何获取、修改、添加或删除html元素(DOM对象)的。

DOM节点       

       根据W3C的HTML DOM标准,HTML文档中的所有内容都是节点:

       1、整个文档是一个文档节点

       2、每个HTML元素是一个元素节点

       3、每个HTML属性是一个属性节点

       4、注释是注释节点

HTML DOM节点树

       HTML DOM将HTML文档视作树结构。这种结构成为节点树:

       一个实例:

ct_htmltree

        关于DOM的介绍就这么多了,详细了解的话可查阅W3CSCHOOL手册。

 DOM对象

        简单的来说通过JavaScript中的getElementsByTagName或者getElementById来获取元素节点,得到的DOM元素就是DOM对象。DOM对象可以使用JavaScript中的方法,简单实例:

 

[javascript] view plaincopy

  1. var obj = document.getElementById("id");//获取DOM对象  
  2. var ObjHTML = obj.innerHTML;                //使用js方法  

 

jQuery对象

       jQuery对象就是通过jQuery包装DOM对象所产生的对象。

       需注意的是jQuery对象是jQuery独有的。如果一个对象是jQuery对象,那么就可以使用jQuery里的方法。

       一个简单的例子:

 

[javascript] view plaincopy

  1. $("#foo").html();   //获取id为foo的元素内的html代码.html()为jQuery里的方法  

 

       该代码等价于:

 

[javascript] view plaincopy

  1. document.getElementById("id").innerHTML  

 

相互转换

       核心提示:jQuery选择器得到的jquery对象和标准的DOM对象是两种不同的对象,jquery对象不能使用DOM对象的属性方法。同样的DOM对象也不能使用jquery对象的方法、属性。

       不过前面了解到,jquery对象本来就是DOM对象包装而来的,那么两者肯定是能够进行转换的。

       在讨论jQuery对象和DOM对象的相互转换之前,先约定好定义变量的风格。jquery对象在前面加上$,例如:

 

[javascript] view plaincopy

  1. var $test = jQuery 对象;        //jquery变量  
  2. var test = DOM 对象;           //dom变量  

 

jQuery对象->DOM对象

        jQuery对象是不能使用DOM中的方法的,但是如果对jQuery对象的方法不熟悉,或者jQuery对象没有封装想要的方法,不得不使用DOM对象的时候,可以通过以下两种方式将jQuery对象转换为DOM对象。

       (1) jQuery对象是一个数组对象,可以通过[index]得到相应的DOM对象。

 

[javascript] view plaincopy

  1. var $vars = $("#vars");           //jQuery对象  
  2. var test = $vars[0];               //DOM对象  
  3. console.info(test.checked);    //检查该对象是否选中  

 

      (2) 通过jQuery本身提供的get(index)方法返回DOM对象。

 

[javascript] view plaincopy

  1. var $vars = $("#vars");           //jQuery对象  
  2. var test = $vars.get(0);             //DOM对象  
  3. console.info(test.checked);    //检查该对象是否选中  

 

DOM对象->jQuery对象

      对于一个DOM对象,只需要用$()将DOM对象包装起来就可以转换为jQuery对象了。

 

[javascript] view plaincopy

  1. var cr = document.getElementById("id");     //DOM对象  
  2. var $cr = $(cr);                            //jQuery对象  

 

       转换后,可以任意使用jQuery中的方法。

       通过以上方法可以实现DOM对象和jQuery对象的相互转换,但是一般情况下jQuery对象提供了一套更加完善的工具用于操作DOM,因此优选使用jQuery对象操作DOM是一个不错的选择。

示例

[javascript] view plaincopy

  1. <html>  
  2. <head>  
  3.     <title>jQuery对象和DOM对象</title>  
  4.     <script src="js/jquery-1.9.1.js"></script>  
  5.     <style type="text/css">  
  6.         body {  
  7.             text-align: center;  
  8.         }  
  9.     </style>  
  10.     <script>  
  11.         /*使用原生js代码判断复选框是否被选中*/  
  12.         $(function(){  
  13.             var $cr=$("#cr");  
  14.             var cr = $cr.get(0);  
  15.             $cr.on('click',function(){  
  16.                 if(cr.checked){  
  17.                     console.info("感谢您的支持,你可以继续操作!");  
  18.                 }  
  19.             });  
  20.         });  
  21.         /*使用jQuery的方式判断复选框是否被选中*/  
  22.         $(function(){  
  23.            var $cr = $("#cr");  
  24.             $cr.on('click',function(){  
  25.                 if($cr.is(":checked")){  
  26.                     alert("通过jQuery方式选中");  
  27.                 }  
  28.             });  
  29.         });  
  30.     </script>  
  31. </head>  
  32.   
  33. <body>  
  34.     <input type="checkbox" id="cr"/>  
  35.     <label for="cr">我同意该服务条款</label>  
  36. </body>  
  37. </html>  

JS、Jquery技术学习 https://www.itkc8.com   

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值