2011-03-23 49 views
2

在jQuery中是否有一種簡單的方法來爲深層嵌套的複選框(或輸入)元素返回所有者窗體?下面是我的意思的例子:從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()方法做到這一點,但複選框可能並不總是與根表單元素具有相同的嵌套深度。

很抱歉,如果不清楚,但很難解釋。

回答

5

獲取closest形式

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

從jQuery的API:

描述:獲取選擇器相匹配,在當前元素開始並通過DOM前進了第一祖先元素樹。

.closest(選擇器)

選擇器:將含有一個選擇 表達式用於匹配元素串。

+0

的所有相關父(形式)很快,謝謝@BrunoLM! – BenM 2011-03-23 13:39:24

+0

更好:'輸入:複選框' – 2011-03-23 13:57:44

+0

我該如何去訪問表單中的其他複選框元素?使用'$('input:checkbox')。closest('form')。children();'返回表格元素。但是,我想訪問所有存在於根表單中的'checkbox'元素... – BenM 2011-03-23 13:45:52

0

.closest()聽起來像你需要的功能。

它會返回您給該函數的元素的最接近的父元素。

1

您也可以使用父母()這樣的:

$("input:checkbox").parents("form"); 
0

使用parent()

$("input:checkbox").parent("form"); 

父母會給你此複選框

相關問題