我没有得到相同的结果,当我使用JQuery与JavaScript函数。getElementById和JQuery不返回相同的结果
这是HTML
<form id="testform">
<div id="FormContainerID"></div>
<input type="button" id="y" value="Button" />
<div id="ListContainerID"></div>
</form>
这里是JavaScript
01 var Form = document.getElementById('y').form;
02 //var Form = $('#y').closest('form');
03 alert(Form);
当激活第1行,我得到一个法律形式对象。警报说“对象HTMLFormElement”,一切工作正常。
但是,如果我使用02行,警报说“对象对象”,然后我当然会得到错误,因为它不是一个真正的窗体对象。
为什么JQuery不返回正确的对象? 我得到了与Chrome和IE8相同的结果。
[编辑]
我使用jQuery版本:jQuery的1.5.1.min
[解决方法]
感谢您清除此了。我改变了代码:
var Form = $('#'+fChildID).closest('form')[0];
...现在它可以作为一个魅力。
Vivek Goel是第一个回答,因此声称他。我向其他人解释了JQuery实例模型。
谢谢。
我找不到任何关于.closest()的文档应该返回一个数组。它总是返回一个数组,还是我误解了一些基本的东西? –
@Max:它不是一个数组,它是一个'jQuery'实例(一个通过'jQuery.fn.init'构造函数创建的对象),它是一组DOM元素的包装器。是的,jQuery * always *返回一个'jQuery'实例,无论是否有零匹配元素,一个或1,000(或更多)。 –