jquery中元素的id不会改变?

时间:2010-12-30 10:11:04

标签: javascript jquery ajax request

即。

$("#savenew").live('click', function(e)  {
               var user=<?php echo $user?>;
                 $.ajax({
                type: "POST",
                url: "actions/sub.php",
                data:{user: user} ,
                success: function(){
                  $('#savenew').html('<span>Unsubscribe</span>');
    $(this).attr('id', 'clean'); // this my problem my problem
                        }
            });
     }); 

ajax请求后的id,没有从savenew更改为clean,但html完全正常,所以我知道ajax请求正在运行。你怎么解决问题呢?

2 个答案:

答案 0 :(得分:2)

您只需要保存context(通过context option for $.ajax()),以便this仍然引用#savenew,如下所示:

$("#savenew").live('click', function(e)  {
  var user=<?php echo $user?>;
  $.ajax({
    context: this, //add this!
    type: "POST",
    url: "actions/sub.php",
    data:{user: user} ,
    success: function(){
      $(this).attr('id', 'clean').html('<span>Unsubscribe</span>');
    }
  });
}); 

另请注意,这可以让您对链条进行整理和清理。

答案 1 :(得分:1)

$(this)内的

success: function(){未引用$('#savenew')

正如您在上面的行中所做的那样,您需要通过id:

来引用它
$('#savenew').attr('id', 'clean');