2012-01-31 70 views
0

使用此功能。但它將row_selected類添加到所有行。我怎樣才能將它添加到父行?如何僅將父級添加到父級行

$('.checkbox').click(function() { 
    if ($("#list tr").hasClass('row_selected')) 
     $("#list tr").removeClass('row_selected'); 
    else 
     $("#list tr").addClass('row_selected'); 
}); 
+0

你是什麼意思的「父行」?你在父表格單元格中有表格嗎? – Cheery 2012-01-31 00:30:41

+0

發佈一些html也可以 – 2012-01-31 00:31:09

+0

@Cheery ​​CHECKBOX – heron 2012-01-31 00:31:40

回答

4

可以使用.closest() method找到特定選擇匹配最近的父(或祖父母/祖先)元件。所以,試試這個:

$('.checkbox').click(function() { 
    $(this).closest("tr").toggleClass("row_selected"); 
}); 

注意,.toggleClass() method你需要你的if/else的照顧,但如果你真的想將它手工編碼:

$('.checkbox').click(function() { 
    // store the reference to the containing tr in a variable instead of 
    // reselecting it 
    var $tr = $(this).closest("tr"); 
    if ($tr.hasClass('row_selected')) 
     $tr.removeClass('row_selected'); 
    else 
     $tr.addClass('row_selected'); 
}); 

注意,無論哪種方式,在一個jQuery事件處理程序this是觸發事件的元素,所以您可以通過獲取帶有$(this)的jQuery對象來操縱它或找到它的父母/兄弟姐妹/無論如何。

相關問題