2
<div id="msg_container">
  <span> Is this helpful ? </span>
  <span class="feedback"> 
     <a title="like"> Yes </a> 
     <a title="dislike"> No </a> 
  </span>
</div>

// jQuery Script
$('.feedback a').live('click', function() {
   var reference = $(this).parent().parent();
   $.post("URL", $("FORM").serialize(),
        function(data){
    // posted successfully and following will be executed
    reference.empty();
            reference.add('<span> You have given feedback </span>');

   }, "json");       
});

该过程将是:

  1. 用户会被问到‘这有帮助吗?是的 没有'
  2. 单击“是”或“否”后,将执行 .post 方法
  3. 成功发布到服务器后,
  4. 我希望 DOM 元素 id="msg_container" 将整个内容更改为带有“您已给出反馈”这句话的正常跨度或段落,以便每个用户只能给出一个反馈。

问题:

  1. 一旦 div "msg_container" 被清空, .add() 就不起作用了。
  2. 即使没有清空“msg_container”,.add() 仍然不起作用。
  3. 我阅读了文档, .add() 似乎不像我上面那样与引用对象一起工作。
  4. 我必须将引用分配给变量,例如 var reference = $(this).parent(); 否则,在执行 $.post 之后,$(this) 将失去其原始的 'this' 引用。

知道如何解决这个问题吗?只要满足我的要求,我就可以接受替代解决方案。

4

1 回答 1

2

你可以使用append()

reference.append('<span> You have given feedback </span>');
于 2011-12-16T10:00:33.017 回答