parent/closest.删除 - jQuery
parent/closest .remove - jQuery
jQuery 中的所有内容都在工作,但 .remove() 不工作
我试过使用 .closest() 和 .parent() 但都没有用
jQuery代码:
$(document).on('click', 'a#withdraw', function() {
$.ajax({
//ajax info
},
success: function(e) {
if (e.type == 'error') {
$("#bank .message").html(e.message).addClass('error').removeClass('showoff');
} else {
var total = parseInt($('#bank #total').html());
$("#bank #total").html(total - 1);
$(this).closest('li').remove();
}
}
});
});
HTML代码:
<ul class="bank-items" id="bank-items">
<li data-id="1">
Item Name
<a href="#" id="iteminfo" data-item="4" title="Information"><img src="..." alt="info" /></a>
<a href="#" id="withdraw" data-id="1" title="Withdraw"><img src="..." alt="withdraw" /></a>
</li>
.
.
.
</ul>
问题是成功回调中的 this
不引用单击的锚元素,它引用 ajax 对象。
一种解决方案是使用上下文选项为回调传递自定义上下文,例如
$(document).on('click', 'a#withdraw', function () {
$.ajax({
//ajax info
context: this,
success: function (e) {
if (e.type == 'error') {
$("#bank .message").html(e.message).addClass('error').removeClass('showoff');
} else {
var total = parseInt($('#bank #total').html());
$("#bank #total").html(total - 1);
$(this).closest('li').remove();
}
}
});
});
另请注意,元素的 ID 必须是唯一的,因此如果您有多个 a#withdraw
元素,请使用 withdraw
作为 class 而不是 ID。
jQuery 中的所有内容都在工作,但 .remove() 不工作 我试过使用 .closest() 和 .parent() 但都没有用
jQuery代码:
$(document).on('click', 'a#withdraw', function() {
$.ajax({
//ajax info
},
success: function(e) {
if (e.type == 'error') {
$("#bank .message").html(e.message).addClass('error').removeClass('showoff');
} else {
var total = parseInt($('#bank #total').html());
$("#bank #total").html(total - 1);
$(this).closest('li').remove();
}
}
});
});
HTML代码:
<ul class="bank-items" id="bank-items">
<li data-id="1">
Item Name
<a href="#" id="iteminfo" data-item="4" title="Information"><img src="..." alt="info" /></a>
<a href="#" id="withdraw" data-id="1" title="Withdraw"><img src="..." alt="withdraw" /></a>
</li>
.
.
.
</ul>
问题是成功回调中的 this
不引用单击的锚元素,它引用 ajax 对象。
一种解决方案是使用上下文选项为回调传递自定义上下文,例如
$(document).on('click', 'a#withdraw', function () {
$.ajax({
//ajax info
context: this,
success: function (e) {
if (e.type == 'error') {
$("#bank .message").html(e.message).addClass('error').removeClass('showoff');
} else {
var total = parseInt($('#bank #total').html());
$("#bank #total").html(total - 1);
$(this).closest('li').remove();
}
}
});
});
另请注意,元素的 ID 必须是唯一的,因此如果您有多个 a#withdraw
元素,请使用 withdraw
作为 class 而不是 ID。