jquery中的$("#id")与document.getElementById("id")的区别
原文链接:https://www.cnblogs.com/theWayToAce/p/5591221.html
jquery的$("#id")和document.getElementByIdx_x("id")是不同的。$()返回的是jQuery对象,document.getElementById()返回的是DOM对象。因此,alert($("#div"))得到[object Object];但alert(document.getElementById("div"))得到的是[object HTMLDivElement]。
二者之间是可以转化的:alert($("#div")[0])或alert($("#div").get(0))就可以得到[object HTMLDivElement]。
jQuery对象
用jQuery包装DOM对象后产生的对象。它是jQuery独有的,可使用jQuery的方法。
jQuery对象本身是一个集合。
比如:$("#test").html()——获取ID=test的元素的html代码。html()是jQuery的方法。
如果如果用DOM实现代码:document.getElementById("id").innerHTML。
jQuery对象无法使用DOM对象的任何方法;DOM对象也不能使用jQuery的方法。
jQuery对象与DOM对象相互转换的约定
在jQuery对象变量前面加上$,如:var $variab = jQuery对象。
DOM对象变量与普通变量一样:var variab = DOM对象。
该约定只是便于讲解与区别,实际使用中并不规定。
jQuery对象转成DOM对象
两种转换方式:
(1) [index]
var $v = $("#v") ; // $v是jQuery对象
var v = $v[0]; // v是DOM对象
alert(v.checked) //检测这个checkbox是否被选中
(2).get(index)方法
var $v = $("#v"); //jQuery对象
var v = $v.get(0); //DOM对象
alert(v.checked) //检测这个checkbox是否被选中
DOM对象转成jQuery对象
只需用$()把DOM对象包装起来,就可以获得jQuery对象:$(DOM对象) 。
var v = document.getElementById("v"); //DOM对象
var $v = $(v); //jQuery对象
转换后,就可以使用jQuery方法了。
可以通过id或name获取对象
通过id:
document.getElementById('formid');
$('#formid')
通过name:
document.getElementsByName('formName')[0];
$("form[name='formName']")