2

我对 jQuery 的$(this)对象有疑问,让我错过了this代码中的元素:

 $('.star').click(function (){
    var id   = $(this).parent().attr('id').split('rating')[1];
    var vote = $(this).index() + 1;
    var ThisStar = $(this);

    alert(ThisStar.parent().html())

    $.ajax({
        type: 'POST',
        url:  EXECUTION_URL + 'ajax/rate.php',
        data: {'article' :id  ,'rate': vote},
        success:function(data,tt,ff){
            alert(ThisStar.parent().html())
        }
  });

第一次警报触发:被点击节点的父节点的真实内容第二次警报触发:null !!!为什么改成ajax了?还是出于其他原因?请告诉我一个解决这个问题的好方法

好的,实际上我检查了我的代码,在 ajax 函数之后有两行删除了this对象中的存储节点,并且由于 ajax 函数是异步函数,所以在成功函数内的代码之前执行的两行 >> 谢谢大家

4

1 回答 1

0

您的代码应该可以正常工作,请检查证明。唯一的区别是:

success:function(data,tt,ff){
    alert(ThisStar.parent().html())
}

对比

success:function(data,tt,ff){
    alert(ThisStar.parent().html())
}});
于 2012-09-07T12:01:15.790 回答