2012-09-08 69 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元素卻有。