jQueryfind父窗体

我有这个HTML

<ul> <li><form action="#" name="formName"></li> <li><input type="text" name="someName" /></li> <li><input type="text" name="someOtherName" /></li> <li><input type="submit" name="submitButton" value="send"></li> <li></form></li> </ul> 

我怎样才能selectinput[name="submitButton"]是一部分的forms? (当我点击提交button,我想select表单并在其中添加一些领域)

我会build议使用closest ,它select最接近的匹配父元素:

 $('input[name="submitButton"]').closest("form"); 

而不是按名称筛选,我会这样做:

 $('input[type=submit]').closest("form"); 

您可以使用所有input中存在的表单引用,这比.closest()快得多(在Chrome和IE8中快了5-10倍)。 也在IE6和7上工作。

 var input = $('input[type=submit]'); var form = input.length > 0 ? $(input[0].form) : $(); 

对我来说,这看起来像最简单/最快的:

 $('form input[type=submit]').click(function() { // attach the listener to your button var yourWantedObjectIsHere = $(this.form); // use the native JS object with "this" }); 

另请参阅jquery / js – 如何根据点击提交button来select父窗体?

 $('form#myform1').submit(function(e){ e.preventDefault(); //Prevent the normal submission action var form = this; // ... Handle form submission });