JQueryとjavascript関数を使用しても同じ結果が得られません。getElementByIdとJQueryが同じ結果を返さない
これは、ここではHTML
<form id="testform">
<div id="FormContainerID"></div>
<input type="button" id="y" value="Button" />
<div id="ListContainerID"></div>
</form>
ある行1をアクティブにするとJavascriptを
01 var Form = document.getElementById('y').form;
02 //var Form = $('#y').closest('form');
03 alert(Form);
、私は法的なフォームオブジェクトを取得することです。 Alertには「object HTMLFormElement」と表示され、すべて正常に動作します。
しかし、代わりに行02を使用すると、実際のフォームオブジェクトではないため、アラートに「オブジェクトオブジェクト」と表示されてエラーが表示されます。
JQueryが正しいオブジェクトを返さないのはなぜですか? ChromeとIE8で同じ結果が得られます。
[EDIT]私はjQueryのバージョンを使用してい
:jqueryの-1.5.1.min
[SOLUTION]
これをクリアするためのありがとう。私はにコードを変更:
var Form = $('#'+fChildID).closest('form')[0];
...そして今、それが魅力のように動作します。
Vivek Goelが最初に答えたので、彼に信じる。 JQueryのインスタンスモデルについて説明した他の人に投票しました。
ありがとうございます。
.closest()が配列を返す必要があるというドキュメントが見つかりません。常に配列を返しているのですか、何か基本的なことを誤解していますか? –
@Max:配列ではなく、 'jQuery'インスタンス(' jQuery.fn.init'コンストラクタ関数で作成されたオブジェクト)です。これは、DOM要素の一致するセットを包むラッパーです。そして、はい、jQuery *は、一致する要素がゼロかどうかにかかわらず、常に1つまたは1,000(またはそれ以上)の 'jQuery'インスタンスを返します。 –