为什么这个jquery代码不删除li列表项
Why does this jquery code not remove the li list item?
$('#list li a').on('click', function(e) {
var user_id = this.parentNode.id.replace('list_', '');
var id = 'id=' + user_id;
e.preventDefault();
$.ajax({
type: "POST",
url: "xxx.php",
data: id,
success: function() {
$(this).parent().hide(); //the problem is here
$('.updateNumber').html(function() {
return parseInt($(this).text(), 10) + 1;
});
}
});
});
我认为在 ajax 调用后,由于 (THIS( 选择器,它无法识别 li 列表,它没有正确引用它,感谢您的帮助
您是正确的,在 Ajax 回调中this
不是单击的锚点。以下方法应该有效:
$('#list li a').on('click', function(e) {
var user_id = this.parentNode.id.replace('list_', '');
var id = 'id=' + user_id;
e.preventDefault();
var $a = $(this);
$.ajax({
type: "POST",
url: "xxx.php",
data: id,
success: function(){
$a.parent().hide();
$('.updateNumber').html(function(){
return parseInt($(this).text(),10)+1;
});
});
});
在$.ajax()
呼叫之外保存对单击的链接的引用。回调函数可以访问其包含范围内的变量。
您正确识别了问题。每个函数都有自己的this
变量,如果不添加另一个变量或做一些其他类型的花哨的修饰,你就不能引用父函数的this
。
无论如何,您的问题很容易解决。首先,将变量集添加到正确的this
$('#list li a').on('click', function(e) {
var $this = $(this);
//...
,然后改为引用该变量:
$this.parent().hide();
相关文章:
- 从数组中删除 li 和
- Rails-使用Ajax删除li元素
- jQueryUI可排序-从可排序列表中删除li
- 从ul中删除li元素
- 如何使用jquery按数据属性删除li标签
- Javascript - 单击时需要删除 li 元素
- addClass 的对象格式,使用 jquery 添加文本并删除 li
- JQuery 根据 ASCII 内容删除 li
- 通过 Angular 从 UL 中删除 LI
- 为什么在更改文本时删除 li 元素中的链接(锚元素)
- Angular,如何将类设置为单击的列表项并从其他列表项中删除li项
- 通过Javascript添加和删除li
- 删除li中除当前li之外的所有ul
- 为什么这个jquery代码不删除li列表项
- 根据输入中输入的名字和/或姓氏从ul中删除li
- 从列表中删除li的内容并删除该li
- 使用id of li从ul中删除li
- 用jquery从href中删除li
- 如何删除li的子元素的所有ul元素
- 需要帮助在Javascript中删除li子弹