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 要素を返します。

2 つ目は、指定された ID を持つ DOM 要素を含むか、空の jQuery オブジェクト (長さ = 0) のいずれかである jQuery オブジェクトを返します。

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要素を返すことです。

したがって、2つの例の違いは、返されたオブジェクトのプロパティを参照していることです。明らかに、jQueryオブジェクトにはfilesプロパティがありませんが、DOM要素にはあります。

于 2012-09-08T19:01:36.240 に答える