1

チェックボックスがオンになっているtdのid値を取得するjquery関数があります。それらの td に色を付ける必要があります。エラーは発生しませんが、tdも色付けしないこの関数を作成しました..

関数は次のとおりです。

$('#custom-interval-tbl td').each(function() {
 $(this).find('input:checkbox:checked').each(function() {      
    var tdId= $(this).attr("id");
    var tdElement = $("#custom-interval-tbl td").eq(tdId); 
    console.log("TD Element"+tdElement);        
    tdElement.css({background:"#333333"});
    });
});

誰かが私がやっている間違いを教えてもらえますか?

ご協力いただきありがとうございます。

4

2 に答える 2

1

thisここでの問題は、2番目の関数の内部が。checkboxではなく、を参照していることだと思いますtd。これを試して:

$('#custom-interval-tbl td').each(function() {
 $(this).find('input:checkbox:checked').each(function() {      
    var tdElement = $(this).parent("td");
    console.log("TD Element"+tdElement);        
    tdElement.css({background:"#333333"});
    });
});
于 2012-08-14T23:42:00.433 に答える
1

jsFiddle デモ

問題は、.eq()(インデックスベースの) を使用していることですidが、チェックボックスを指定しています。

ちなみに、:text / :checkbox / などは使用しないでください。これらは jQuery 内では非推奨です。native[type="checkbox"]などを使用することをお勧めします。

$('#custom-interval-tbl td').each(function() {
    $(this).find('input[type="checkbox"]:checked').each(function() {
        // You don't need to find out ID or anything.
        // Just go up to the closest <td> and give it the background

        var tdElement = $(this).closest('td');     
        tdElement.css({ background : "#333333" });
    });
});​
于 2012-08-14T23:32:18.277 に答える