jQuery中有一种简单的方法可以返回深层嵌套复选框(或输入)元素的所有者表单吗?这是我的意思的一个例子:
<form>
<table>
<thead>
<tr>
<td>123</td>
</tr>
</thead>
<tfoot>
<tr>
<td><input type="checkbox" class="checkall" /></td>
</tr>
</tfoot>
</table>
</form>
然后我有以下jQuery代码:
$('checkbox.checkall').each(function() {
// Access form element of the checkbox here
});
在上面的示例中,我想获取复选框所属的表单。从本质上讲,我可以使用链式parent()
方法执行此操作,但复选框可能并不总是与根表单元素的嵌套深度相同。
很抱歉,如果不清楚,但很难解释。
答案 0 :(得分:5)
获取closest表单
$("input[type=checkbox]").closest("form");
来自jQuery API:
描述:获取与选择器匹配的第一个祖先元素,从当前元素开始并逐步向上遍历DOM树。
.closest(选择器)
selector:包含选择器的字符串 表达式匹配元素。
答案 1 :(得分:2)
表单字段具有form
属性,该属性返回包含它们的FORM元素。
$('checkbox.checkall').each(function() {
// Access form element of the checkbox here
var form = this.form;
});
来源:http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-63239895
答案 2 :(得分:1)
你也可以使用parents():
$("input:checkbox").parents("form");
答案 3 :(得分:0)
.closest()
听起来像你需要的功能。
它将返回您为函数提供的元素的最近父元素。
答案 4 :(得分:0)
使用parent()
$("input:checkbox").parent("form");
家长会向您提供此复选框的所有相关父母(表格)