2012-09-08 59 views
1

你想解释什么是

document.getElementById("something") 

之间不同
$("#something") 

我想用ajax上传一个文档,我意识到这

var upl = document.getElementById('uplFile'); 
    console.log(upl.files); 

返回一个对象,但

var upl = $('#uplFile'); 
    console.log(upl.files); 

返回“undefined”

请解释一个diffrerence。

回答

6

我想你指的区别:

document.getElementById("something") 

$('#something') 

第一个将返回的DOM元素与指定的ID,或空。

第二个将返回一个jQuery对象,它将包含具有指定id的DOM元素,或者是一个空的jQuery对象(长度= 0)。

由于jQuery函数返回一个jQuery对象,而不是一个元素,你必须让元件从jQuery对象的访问元素属性:

var upl = $('#uplFile'); 
console.log(upl[0].files); 
0

不同的是,getElementById('id')返回一个HTML DOM元素,而$('id')返回由jQuery对象包装的DOM元素。

所以你的两个例子的区别在于你引用了返回对象的属性。显然,jQuery对象没有文件属性,而DOM元素却有。