jQuery:如何将变量传递给选择器

时间:2012-03-14 23:20:40

标签: jquery

我在这里看了,但找不到任何适用于我想做的事情。这是我的AJAX调用,它是delete_item的点击事件:

$.ajax({
    type: 'POST',
    url: '<?php echo site_url('channel_partners/cms/delete'); ?>',
    data: 'article_id=' + article_id,
    dataType: 'json',
    cache: false, 
    success: function(data) {
         $('li').remove($(this).id);
    },
    error: function(xhr, status, error) {
        alert('Error occurred: ' + status); 
    }
});

这是删除调用的行,它不起作用。 $(this).id正确引用我想删除的li的id。我认为我的问题是我使用删除调用。我认为我的语法有问题,但我不知道是什么。我遵循了API,但它们没有这个具体。有人可以帮忙吗?感谢。

哦,我的DOM看起来像这样:

<li id="26"><a class="delete_item" ...></a><li>

3 个答案:

答案 0 :(得分:1)

非常简单:

$(this).remove();

您可能希望缓存对当前“this”的引用,尤其是在您异步运行脚本的情况下:

var pEl = $(this);
$.ajax({...snip...
    success:function(data){
        pEl.remove();
    }

答案 1 :(得分:0)

我假设链接控制每当这个ajax调用运行时,所以$(this)对象指的是&lt; a&gt;不是&lt; li>元件。而且你不能在成功事件中直接使用它。所以你可以这样做:

  1. 在“channel_partners / cms / delete”中,您可以在成功删除后返回已删除项目的ID
  2. 然后您可以使用这样删除li元素:

    $("li[id=" + data + "]").remove(); 
    
  3. 通过这样使用,您可能会从服务器获取不成功的删除结果,并从服务器返回“ERROR”之类的数据。

答案 2 :(得分:-1)

$("li").attr("id",$(this).id).remove()