Выбор следующего элемента родителя
Это моя кодировка,
<tr class="ar">
<td>
<input type="checkbox" class="cbx">
</td>
<td>
<span class="spc">book</span>
</td>
</tr>
<tr class="ar"></tr>
Что я хочу сделать, если установлен флажок или диапазон (сначала внутри tr
), Я хочу переключить класс на второй tr
, Также, если флажок уже установлен, мне нужно снять флажок при нажатии любой из них.
5 ответов
$('td input[type=checkbox], td span').click(function(){
$(this).closest('tr')
.find('input[type=checkbox]')
.prop("checked", false)
.end()
.next()
.toggleClass('yourclass');
});
Попробуй это
$(".cbx2").click(function(){
$(this).closest("tr.ar").next().toggleClass("toggled_class");
});
$(this).closest("tr.ar")
даст вам ближайший родитель tr
элемент этого объекта с ar
класс и .next
получит следующий элемент такого рода, который является вашим вторым tr
,
Попробуйте использовать это:http://jsfiddle.net/kPJJf/
$('td input[type=checkbox], td span').click(function () {
$(this).parents('tr').next('tr').find('span').toggleClass('spc');
if($(this).parents('tr').next('tr').find('input[type="checkbox"]').is(':checked')==false){
$(this).parents('tr').next('tr').find('input[type="checkbox"]').prop('checked', true);
}else{
$(this).parents('tr').next('tr').find('input[type="checkbox"]').removeAttr('checked');
}
});
Попробуйте это.... если вы хотите снять флажок...
$('#your_checkbox_id').live('click' , function() {
if($('#your_checkbox_id').is(':checked')) {
$('#your_checkbox_id').removeAttr('checked');
$(this).next().toggleClass('class_name');
}
});
$('.cbx, .spc').click(function(e){
$('.cbx').prop('checked', false); // uncheck everything
$(this).toggleProp(checked, $(this).prop('checked')) // check/uncheck current
.closest('.ar').toggleClass('yourClass'); // toggle class on next tr
});