Подтвердить что ты не робот

JQuery Найти ребенка Checkbox

У меня есть быстрый вопрос 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");
  });

Но выше не работает. Быстрые идеи по выбору флажка в строке, которая была нажата? Спасибо!

4b9b3361

Ответ 1

РЕДАКТИРОВАТЬ: ЛУЧШЕЕ РЕШЕНИЕ В НОМЕРЕ

Предполагая, что есть только один флажок, я привязывал событие к td вместо tr:

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

Пример

Если вы хотите также снять галочку...

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

    $tc.attr('checked', !tv);
});

Эта функция также должна быть применена к флажку, чтобы отрицать поведение по умолчанию.

Пример 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);

Ответ 2

Метод jQuery ближайший() находит ближайшего родителя.

Вы действительно хотите искать дочерние элементы, вы можете попробовать следующее:

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

в основном вы ищете первый флажок, найденный в строке таблицы

какая-то ссылка

jQuery: eq() селектор

......

Ответ 3

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

Я делаю простой script, чтобы сначала установить флажок в определенном tr. о переключении я просто попробую, прежде чем опубликовать этот ответ.

Ответ 4

попробуйте это также...

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