因为工做的须要,发现JQuery是一个绕不开的东西,如今开始学习。javascript
JQuery是什么?始终是萦绕在我心中的一个问题:html
借鉴网上同窗们的总结,能够从如下几个方面观察。java
不使用JQuery时获取DOM文本的操做以下:函数
document.getElementById('info').value = 'Hello World!';
使用JQuery时获取DOM文本操做以下:学习
$('#info').val('Hello World!');
嗯,能够看出,使用JQuery的优点之一是可使代码更加简练,使开发人员更加专一于逻辑自己。动画
jQuery使用户能更方便地处理HTML、events、实现动画效果,而且方便地为网站提供AJAX交互。网站
jQuery库包含如下功能:HTML元素选取、HTML元素操做、CSS操做、HTML事件函数、JavaScript特效和动画、HTML|DOM遍历和修改、AJAX、Utilities。code
jQuery使用户方便快捷获取DOM元素、动态修改页面样式、动态改变DOM内容、响应用户的交互操做、为页面添加动态效果、统一Ajax操做、简化常见的JavaScript任务。htm
上述是对JQuery比较中肯的评价,节选其中的关键字能够粗略的观察到:对象
方便的选取DOM元素,操做DOM元素。(HTML元素选取、HTML元素操做、获取DOM元素、动态修改页面样式、动态改变DOM内容)
响应用户操做。(HTML事件函数、JavaScript特效和动画、响应用户的交互操做、为页面添加动态效果)
简化AJAX操做。(方便地为网站提供AJAX交互、统一Ajax操做)
即:方便DOM的选取和操做、响应用户操做、简化AJax操做。
上述提到了DOM元素,不了解,查阅总结以下:
DOM 全称是 Document Object Model,是文档对象模型。
经过DOM元素,能够方便的操做HTML中的节点,好比获取节点的内容,添加某些元素,删除某些元素。
也就是说,DOM元素和HTML息息相关,它将HTML中的一个个标签封装成DOM元素,以便于JavaScript进行操做。
<html> <body> <div id="info"> <p>Test</p> </div> <script> window.onload = function(){ document.getElementById("info").innerHTML="success"; } </script> </body> </html>
其中document.getElementById("info")就是将id为info的标签封装成为一个DOM元素,接下来即可以方便的操做这个DOM对象,例如修改它的文本内容等等。
JQuery对象与DOM对象之间有什么区别?
先了解什么是JQuery对象:
JQuery对象就是用JQuery包装DOM以后产生的对象。JQuery对象是JQuery独有的,可使用JQuery的各类方法。
$("#test").html();
意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法 。
这段代码的做用等同于用DOM实现代码:
document.getElementById("id").innerHTML;
虽然jQuery对象是包装DOM对象后产生的,可是jQuery没法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法。
还须要注意一点的是:
用#id做为选择器获取得的是jQuery对象,document.getElementById("id")获得的DOM对象,这二者并不等价。
另外,JQuery对象与DOM对象之间能够互相转换。
JQuery对象 -> DOM对象
两种转换方式将一个JQuery对象转换成DOM对象:[index]和.get(index);
jQuery对象是一个数据对象,能够经过[index]的方法,来获得相应的DOM对象。
var v1 = $("#test") ; //jQuery对象 var v2 = $v1[0]; //DOM对象
经过.get(index)方法,获得相应的DOM对象。
var v1 = $("#test"); //jQuery对象 var v2 = v1.get(0); //DOM对象
DOM对象 -> JQuery对象
对于已是一个DOM对象,只须要用$()把DOM对象包装起来,就能够得到一个jQuery对象了。如$(document.getElementById("test"))
var v1=document.getElementById("test"); //DOM对象 var v2=$(v1); //jQuery对象
DOM对象转换为JQuery对象以后就可使用JQuery的方法了。
须要再次强调注意的是:DOM对象才能使用DOM中的方法,jQuery对象是不能够用DOM中的方法。
这个问题解决以后,还有一个疑问:咱们常常在JQuery看见$('div')、$('#id')、$('.class')等相似的代码。那么其中的"$"究竟有什么做用呢?
$其实就是jQuery的别称。是jQuery提供的一个函数,用来将DOM元素、选择器包装成jQuery对象。
var v1 = $('#id'); var v2 = jQuery('#id');
以上二者是等同的。
因此"$"实际上是一个符号,$()代替了jQuery(),固然你也可使用其余的字符来代替"$"
var jq = jQuery.noConflict(); var v1 = jq('#id'); // 等同于var v1 = $('#id');