0

何が悪いのかわかりません。次のようになります。

<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());
        } 
        });
    }
    });
});

しかし、prev()またはnext()は機能しますが、これを行うためのエレガントな方法ではありません。親の中でクラスに一致する子要素を見つけて値を取得するための提案はありますか?

4

1 に答える 1

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);
            }
        });
    }
});
于 2012-07-06T09:40:33.640 に答える