#javascript #jquery #html #spring-boot #thymeleaf
#javascript #jquery #HTML #весенняя загрузка #thymeleaf
Вопрос:
Я хочу удалить тег tr после нажатия кнопки удаления с помощью jQuery, но это не работает, я использовал метод удаления jQuery. Это HTML-код
<tbody>
<tr class="image-col" th:each="image : ${session.galleryList}">
<td><div class="col-sm-4 proj_gallery_grid section_1_gallery_grid">
<div class="section_1_gallery_grid1">
<img th:src="@{'/images/' ${image.imageURL}}" alt=" " class="img-fluid" />
</div>
</div>
</td>
<td th:text="${image.title}"></td>
<td>
<i style="display: none;" class="image-id" th:text="${image.id}"></i>
<button class="delete-image-btn btn btn-success btn-block">Delete Image</button></td>
</tr>
И это код jQuery.
$(document).on('click', '.delete-image-btn', function(event) {
event.preventDefault();
if (confirm("Are youe sure to delete this image?")) {
var message = "Image deleted successfully";
var imageId = $(this).parent().find(".image-id").text();
$.ajax({
type: "GET",
url: "/image/delete_image?imid=" imageId,
success: function(result) {
if (result.status) {
$(this).parent().find('.image-col').remove();
} else {
alert(result.message);
}
},
error: function() {
alert("Error! Please try again");
}
});
return;
} else {
return;
}
});
Ответ №1:
Используйте _t.parent().parent().remove();
$(document).on('click', '.delete-image-btn', function(){
var _t = $(this);
// event.preventDefault();
if(confirm("Are youe sure to delete this image?")){
_t.parent().parent().remove();
var message = "Image deleted successfully";
var imageId = $(this).parent().find(".image-id").text();
return false;
}
else {
return false;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<tbody>
<tr class="image-col" th:each="image : ${session.galleryList}">
<td><div class="col-sm-4 proj_gallery_grid section_1_gallery_grid">
<div class="section_1_gallery_grid1">
<img th:src="@{'/images/' ${image.imageURL}}" alt=" " class="img-fluid" />
</div>
</div>
</td>
<td th:text="${image.title}"></td>
<td>
<i style="display: none;" class="image-id" th:text="${image.id}"></i>
<button class="delete-image-btn btn btn-success ">Delete Image</button>
</td>
</tr>
Комментарии:
1. Спасибо Devsi Odedra, это работает… Могу ли я узнать, как работает этот код _t.parent().parent().remove();
2. Я знаю, потому что это случилось со мной однажды, но также
closest()
должно работать согласно документу, но это не работает, я не знаю причину extact, но с parent().parent(). найдите родительский tr, и вот почему это работает.
Ответ №2:
вы можете сделать это
$('.delete-image-btn').click(function(){
$(this).parents('tr').remove();
})
Комментарии:
1. Это решение также не дает выходных данных, сэр.
Ответ №3:
Ваш поиск в DOM для tr
with class
неверен. Родительским элементом вашей кнопки td
не tr
является. Итак, для удаления tr
вы можете использовать closest
для поиска tr
и удаления.
$(this).closest("tr").remove();
Нравится:
$(document).on('click', '.delete-image-btn', function(event) {
var $this = $(this); // Hold your this state before ajax call
После этого :
$this.closest("tr").remove();
Комментарии:
1. Большое спасибо за ваш ответ, но он все еще не работает
2. Вы можете проверить в консоли с помощью
$(this).closest("tr").length
. И дай мне знать, что у тебя получится.3. А также проверить, что
result.status
возвращает??4. Я проверил, что контроль состояния результата поступает внутри инструкции if.
5. $(this).closest(«tr»). длина выдает результат 0