2011-02-02 26 views
12

を探す:jQueryのは、私は迅速なjQueryの質問持っている子チェックボックス

<table id="my_table"> 
    <tr> 
    <td><input type="checkbox" value="24"></td> 
    <td> Click Here To Check The Box </td> 
    <td> Or Click Here </td> 
    </tr> 
</table> 

とjQueryで、私がいた、その行で対応するチェックボックスを選択しようとしています:私はテーブルの次の型を持っている

をクリックした

$("#my_table tr").click(function(e) { 
    $(this).closest(":checkbox").attr("checked", checked"); 
    }); 

しかし、上記は機能しません。クリックされた行のチェックボックスを選択する上で簡単なアイデアはありますか?ありがとう!

答えて

27

EDIT:BOTTOM

AT BEST SOLUTIONは一つだけチェックボックスがありますと仮定すると、私の代わりにtrtdにイベントを添付します:

$('#my_table td').click(function(e){ 
    $(this).parent().find('input:checkbox:first').attr('checked', 'checked'); 
}); 

Example

あなたがオフにできるようにしたい場合チェックボックスも同様です。

この機能をチェスに適用する必要がありますckboxもデフォルトの動作を無効にします。

Example 2

EDIT:ターゲットが入力された場合ソリューションが最も合理的な方法では、機能をキャンセルすることです:http://jsfiddle.net/EXVYU/5/

var cbcfn = function(e) { 
    if (e.target.tagName.toUpperCase() != "INPUT") { 
     var $tc = $(this).parent().find('input:checkbox:first'), 
      tv = $tc.attr('checked'); 
     $tc.attr('checked', !tv); 
    } 
}; 

$('#my_table td').live('click', cbcfn); 
+0

ありがとうございました。この例への大きなリンクです。私はチェックをはずしたいと思っています。乾杯! – Dodinas

+0

実際、更新された質問が1つしかありませんでした。この例では、「チェックボックス」自体をクリックすることさえできないことに気付きました。これを回避する方法はありますか? – Dodinas

+0

例2をもう一度見てください。私はそれを修正した。 – mVChr

4

jQuery closest()メソッドは、最も近い親を検出します。

あなたは本当に子供のelemetsを検索したい、あなたが次のことを試すことができます。

$("#my_table tr").click(function(e) { 
    $(":checkbox:eq(0)", this).attr("checked", "checked"); 
    }); 

基本的にあなたが最初のチェックボックスを探しているテーブル行で見つかった

は、いくつかの参照

jQuery :eq() selector

......

-1

もこれを試して...

$("#my_table tr").click(function(e) { 
$(this).closest("type:checkbox").attr("checked", checked"); 
}); 
+0

jQuery closest()メソッドがDOMツリーを処理するので、間違っています。それは一致する。 –

+0

ok ..これを指摘するための実感! – Vivek

0
$("#my_table tr").click(function(e) { 
    state= $(this).find(":checkbox:eq(0)").attr("checked"); 
    if (state==true){ // WITH TOGGLE 
     $(this).find(":checkbox:eq(0)").removeAttr("checked"); 
    }else { 
     $(this).find(":checkbox:eq(0)").attr("checked", "checked"); 
    }  
}); 

私は特定のtrの最初のチェックボックスをチェックする簡単なスクリプトを作成します。 トグルについてこの回答を投稿する前に試してみるだけです。

関連する問題