2012-07-06 125 views
0
與父母指定的類

我不知道什麼是錯呢,我有如下:選擇一個元素與JQuery的

<tr> 
    <td><span class="idTask">1</span></td>    
    <td><span>Another Hello</span></td>        
    <td><img class="delete" src="img/delete.png" alt="Edit" /></td> 
    <td><input type="checkbox" name="delete[]" value="" /></td> 
</tr> 

當我點擊一個按鈕,一個函數調用,通過對所有檢查框迭代被刪除,我需要檢索idTask的價值,我嘗試做如下:

$(function(){ 
    $(".deleteAll").click(function(){ 
    var conf=confirm("Are you sure?"); 
    if(conf==true) { 
     $(':checkbox').each(function() { 
     if(this.checked) { 
      alert(($(this)).parent().find('.idTask').text()); 
     } 
     }); 
    } 
    }); 
}); 

但不起作用,與上一個()或next()的作品,但不是我的優雅的方式來做到這一點,任何建議找到一個孩子元素匹配他的父母內部的類來檢索他的價值?

回答

1

複選框的父級爲<td>,但不是<tr>。您應該更好地使用closest()

$(".deleteAll").click(function() { 
    if (confirm("Are you sure?")) { 
     $(":checkbox").each(function() { 
      if (this.checked) { 
       // --------------.-.-.-.-.-.-. 
       //    v v v v v v v 
       var id = $(this).closest("tr").find(".idTask").text(); 
       alert(id); 
      } 
     }); 
    } 
}); 
+0

哇,謝謝VisioN!你拯救我的一天!我之前使用的是最接近的,但我錯了「td」而不是「tr」最接近,假設在這種情況下找到與複選框匹配的所有元素,並搜索他的孩子,對吧?我想我誤解了一些概念。 – Enot 2012-07-06 10:02:59

+0

輕鬆地說,'nearest'找到與DOM樹中複選框的所有父項內的選擇器匹配的第一個元素。所以在我們的例子中它會找到第一個'tr'。 – VisioN 2012-07-06 10:07:32