Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jquery代码不删除li列表项?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 为什么jquery代码不删除li列表项?

Javascript 为什么jquery代码不删除li列表项?,javascript,jquery,html,Javascript,Jquery,Html,我认为在ajax调用之后,它无法重新确认li列表,因为(此)选择器没有正确引用它,感谢您的帮助,您是正确的,在ajax回调中,此不是单击的锚。以下方面应起作用: $('#list li a').on('click', function(e) { var user_id = this.parentNode.id.replace('list_', ''); var id = 'id=' + user_id; e.preventDefault(); $.ajax({

我认为在ajax调用之后,它无法重新确认li列表,因为(此)选择器没有正确引用它,感谢您的帮助,您是正确的,在ajax回调
中,此
不是单击的锚。以下方面应起作用:

$('#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
变量,在引用父函数的
this
时,必须添加另一个变量或进行其他花哨的欺骗

无论如何,你的问题很容易解决。首先,将变量集添加到正确的
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;
            });
        });
    });
然后引用该变量:

$('#list li a').on('click', function(e) { 
  var $this = $(this);
  //...
 $this.parent().hide();