2013-12-04 3 views
0

У меня есть решение jQuery/AJAX, настроенное для обновления и удаления элементов, отображаемых в таблице. Часть AJAX отлично работает, но как только элемент удален, мне нужно убрать его из представления, и я не могу понять, как идентифицировать выбранный элемент (ы) на основе их значения после нажатия кнопки отправки.Необходимо удалить строку, если флажок установлен.

Вот мой JQuery:

$('#button').click(function(event){ 
    var order = $("#sortable tbody").sortable("serialize"); 
    order += "&" + $("form[name=favorites]").serialize().replace(/%5B%5D/g, '[]'); 
    order += "&crudtype=update_favorites"; 
    $('#savemessage').html('<p>Saving changes...</p>'); 
    $.post("/crud",order,function(theResponse){ 
     $('#savemessage').html(theResponse); 
     }); 
    }); 
}); 

Мой HTML генерируется из PHP, так что количество и идентификаторы являются переменными, но формат выглядит следующим образом:

<tr class="odd" id="field_37"> 
    <td class="handle"><a href="#">Item #1 Name</a></td> 
    <td><input type="checkbox" name="fid[]" id="fid" value="37" class="box check-child"></td> 
</tr> 
<tr class="even" id="field_29"> 
    <td class="handle"><a href="#">Item #2 Name</a></td> 
    <td><input type="checkbox" name="fid[]" id="fid" value="29" class="box check-child"></td> 
</tr> 

Так эффективно, что (я думаю) я нужно добавить к моей функции .click что-то вроде «foreach checked fid, удалить соответствующий идентификатор строки», если это имеет смысл.

+0

'$ ('table: checkbox: checked'). Ближайший ('tr'). Remove()' ??? –

+4

FYI: Идентификатор должен быть уникальным в документе. – CBroe

ответ

1

Основной селектор, чтобы получить клетчатый флажок

'input[type="checkbox"]:checked' 

или

'input:checkbox:checked' 

Теперь вы можете использовать либо имеет() или перебрать и использовать ближе, чтобы получить ИВВ

$('input[type="checkbox"]:checked').closest("tr").remove(); 

или

$('tr:has(input[type="checkbox"]:checked)').remove(); 
+0

Работает как чемпион, выбранный для простоты. –

0

Вы можете сделать это следующим образом: http://jsfiddle.net/dSANw/

Когда пользователь нажимает на проверяемом поле добавить класс к родительскому тру

$(".box").click(function() { 
    if($(this).is(':checked')) { 
     $(this).parents('tr').addClass('checkedtd'); 
    } else { 
     $(this).parents('tr').removeClass('checkedtd'); 
    } 

}); 

При нажатии на удалении, получить все таблицы ТРА классифицируемых «checkedtd» и удалить

$("#delt").click(function() { 

    alert($('.checkedtd').length); 
    $('.checkedtd').remove(); 


}); 
Смежные вопросы