У меня есть решение 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, удалить соответствующий идентификатор строки", если это имеет смысл.
Базовый переключатель, чтобы установить флажок checked
'input[type="checkbox"]:checked'
или
'input:checkbox:checked'
Теперь вы можете использовать has() или выполнить цикл и использовать ближайший, чтобы получить trs
$('input[type="checkbox"]:checked').closest("tr").remove();
или
$('tr:has(input[type="checkbox"]:checked)').remove();
Вы можете сделать это следующим образом: http://jsfiddle.net/dSANw/
Когда пользователь нажмет на отмеченное поле, добавьте класс в родительский tr
$(".box").click(function() {
if($(this).is(':checked')) {
$(this).parents('tr').addClass('checkedtd');
} else {
$(this).parents('tr').removeClass('checkedtd');
}
});
Когда вы нажимаете на delete, получите все таблицы tr classed 'checkedtd' и удалите
$("#delt").click(function() {
alert($('.checkedtd').length);
$('.checkedtd').remove();
});
$('table :checkbox:checked').closest('tr').remove()
???