jquery中的$("#id")与document.getElementById("id")的差别转载
原创我以前认为jquery中的$("#id")和document.getElementByIdx_x("id")结果是一样的。我今天在做特效的时候发现事实并非如此。我通过了测试。:
1、alert($("#div"))得到的是[object Object]
2、alert(document.getElementById("div"))得到的是[object HTMLDivElement]
3、alert($("#div")[0])或者alert($("#div").get(0))得到的是[object HTMLDivElement]
原因解释:
document.getElementById()返回的是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里的方法.乱使用会 报告错误。例如:$("#test").innerHTML、document.getElementById("id"). html ()这样的写作是错误的。
另外需要注意的是:使用#id作为选择器获得jQuery对象与document.getElementById("id")得到的DOM对象,两者不等价。请参见下面描述的两者之间的转换。
既 然jQuery那么,既有区别,也有联系jQuery对象与DOM对象也可以相互转换。在转换两者之前,我们首先给出一个协议:jQuery对 比如,然后我们在变量前面加。$,如:var $variab = jQuery对象如果获得DOM对象,按惯例:var variab = DOM对象这样的协议只便于解释和区别,在实际使用中没有具体说明。
jQuery对象转成DOM对象:
这两种转换方法将合二为一。jQuery对象转换DOM对象:[index]和.get(index);
(1)jQuery对象是可以传递的数据对象。[index]方法获取相应的DOM对象。
如:var $v =$("#v") ; //jQuery对象
var v=$v[0]; //DOM对象
alert(v.checked) //检测这个checkbox它被选中了吗
(2)jQuery由其自身提供,.get(index)方法,获取相应的DOM对象
如:var $v=$("#v"); //jQuery对象
var v=$v.get(0); //DOM对象
alert(v.checked) //检测这个checkbox它被选中了吗
DOM对象转成jQuery对象:
对于已经DOM对象,只需使用$()把DOM对象被包装,你得到一个。jQuery对象了。$(DOM对象)
如:var v=document.getElementById("v"); //DOM对象
var $v=$(v); //jQuery对象
转换后,您可以随意使用它。jQuery方法。
通过上述方法,您可以任意转换彼此。jQuery对象和DOM对象需要注意的是:DOM只能使用对象DOM方法,jQuery对象不可用DOM中的方法。
以下是其他相关的使用方法:
1、DOM对象转jQuery对象
普通的Dom对象通常可以传递。$()转换成jQuery对象。
如:$(document.getElementById("msg"))
回报是jQuery对象,您可以使用jQuery的方法。
2、jQuery对象转DOM对象
由于jQuery对象本身是一个集合。所以如果jQuery要转换的对象Dom对象必须取出其中一个,通常可以通过索引取出。
如: $("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]
这些都是Dom对象,您可以使用Dom方法,但不能再使用jQuery的方法。
以下书写方法正确:
$("#msg"). html ();
$("#msg")[0].innerHTML;
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;
3,获取对象的两种方法: 如有 <form name="formName" id="formid">****
通过id:
document.getElementById( **formid** );
$(# **formid** )
通过name
document.getElementsByName( **formName** )[0]
$("form[name= **formName** ]")
jquery固有方法:

Me discréditer résister, peut supporter beaucoup de compliments!
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123


