1

您想解释一下两者之间有什么不同吗?

document.getElementById("something") 

$("#something")

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

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

返回一个对象但是

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

返回“未定义”

请解释一下差异。

4

2 回答 2

6

我认为您的意思是:

document.getElementById("something")

$('#something')

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

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

由于 jQuery 函数返回的是 jQuery 对象而不是元素,因此您必须从 jQuery 对象中取出元素才能访问元素属性:

var upl = $('#uplFile');
console.log(upl[0].files);
于 2012-09-08T18:58:07.753 回答
0

不同之处在于getElementById('id')返回一个 HTML DOM 元素,而$('id')返回一个由 jQuery 对象包裹的 DOM 元素。

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

于 2012-09-08T19:01:36.240 回答