document.getElementById vs $(“#something”)

时间:2012-09-08 18:55:53

标签: jquery dom

您想解释

之间的不同之处吗?
document.getElementById("something") 

$("#something")

我正在尝试使用ajax上传文档,我意识到了

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

返回一个对象但是

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

返回“未定义”

请解释一下差异。

2 个答案:

答案 0 :(得分:6)

我认为你的意思是:

document.getElementById("something")

$('#something')

第一个将返回具有指定id的DOM元素,或者为null。

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

由于jQuery函数返回一个jQuery对象而不是一个元素,你必须从jQuery对象中获取该元素才能访问元素属性:

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

答案 1 :(得分:0)

区别在于getElementById('id')返回HTML DOM元素,而$('id')返回由jQuery对象包装的DOM元素。

因此,您的两个示例之间的区别在于您引用了返回对象的属性。很明显,jQuery对象没有files属性,而DOM元素则有。