2015-01-08 2 views
0
<table> 
<tr class="slots"> 
    <td data-col="1" js-select> 
     <input class="time" type="radio"/> 1 
    </td> 
    <td data-col="2" js-select> 
     <input class="time" type="radio"/> 2 
    </td> 
    <td data-col="3" js-select> 
     <input class="time" type="radio"/> 3 
    </td> 
    <td data-col="4" js-select> 
     <input class="time" type="radio"/> 4 
    </td> 

</tr> 

Выделите специфические клетки, цвет фона и установить конкретные радио проверяемого истинного

var selected = $('[js-select]') 
$(selected).click(function(e){ 
    console.log('clicked') 
    // $(this).parents().siblings('.timing').attr('checked', true) 
    $(this).closest('input:radio').attr('checked', true) 
}) 

JSfiddle demo

Когда щелчок по самой тд клетки, она должна установить конкретную радиостанцию, которая в то же тд клетки для проверки true. Таким образом, он активирует весь столбец, чтобы выделить цвет фона. Я пробовал родителей, братьев и сестер, ближе всего, но он установил для всех радиоприемников значение true на локальной машине.

Помогите оценить.

+0

Я не совсем уверен, что вы пытаетесь это сделать, но важно отметить, что ['ближайшее()') (http://api.jquery.com/closest/) проходит через * предков * элемента; ['find()'] (http://api.jquery.com/find/) просматривает и за потомки. –

ответ

1
  1. Входы находятся ниже td, поэтому вам необходимо использовать find.
  2. Использование prop для флажков (не attr)
  3. Вам нужен общий name= атрибут для групп радиокнопок работать вместе

JSFiddle: http://jsfiddle.net/TrueBlueAussie/pukz2sca/3/

var selected = $('[js-select]') 
$(selected).click(function(e){ 
    console.log('clicked') 
    // $(this).parents().siblings('.timing').attr('checked', true) 
    $(this).find('input:radio').prop('checked', true) 
}) 
+0

спасибо, но на ур скрипке все радиоприемники настроены на проверку. Это неправильно, как я уже говорил. Должен быть установлен только один радиоприемник при нажатии. – joe

+0

@ Джо: О, это. Вам просто не хватало 'name ='. Вот как радиокнопки знают, что другие подключены к нему. Обновите JSFiddle и ответьте, чтобы исправить это тоже :) –

+0

ах не удивительно. Благодаря! :) – joe

Смежные вопросы