0

我有一个 Ajax 函数,可以在点击时更新一些数据。我将变量作为函数参数发送。另一方面,我解析一个变量数组并将函数应用于每个变量。这是我的代码:

function vote(user, picture){
  var data = {
    "user": user,
    "picture": picture
  };
  var url = 'vote_up.php';
  $.ajax({
    type: 'POST',
    url: url,
    data: data,
    async: true,
    dataType: 'json',
    success: function(response) {
      $('a#voteaza').replaceWith('<span style="color:#abb4c9; font-size: 15px;"> </span>');
      $('#changeNumber').html(parseInt($('#changeNumber').html(), 10)+1);
    }
  });
}

和 PHP:

foreach($photos['data'] as $photo) {
  $a = end(explode( '/',$photo['source']));
  <a href="#" id="voteaza" name = "<?php echo $a; ?>" style="color:#abb4c9; font-size: 15px; font-weight: bold; " onclick="vote('<?php echo $user ?>', '<?php echo $a ?>');">Voteaza</a> <br /> <span style="color:#abb4c9; font-size: 13px;" id="changeNumber"> <?php echo no_votes($a); ?> Voturi </span>

问题是,在成功时,jquery

$('a#voteaza').replaceWith('<span style="color:#abb4c9; font-size: 15px;"> Vote! </span>');
$('#changeNumber').html(parseInt($('#changeNumber').html(), 10)+1);

将所有 'voteaza' id 替换为 'Vote' 字符串,并递增所有 'changenumber' id 字段。但我希望仅对当前 Ajax 更新的<a name元素执行成功函数。

知道怎么做吗?

谢谢!

4

1 回答 1

1

您的 ID 在页面中应该是唯一的。您不能在页面中提供相同的 ID 两次:您可以看到您在 foreach 中调用了 id 并且都具有相同的值。

试试这个,我不确定这是否有效。你可以让它以这种方式工作。

vote(this,'<?php echo $user ?>', '<?php echo $a ?>')

function vote(test,user, picture){

$(test).replaceWith('<span style="color:#abb4c9; font-size: 15px;"> Vote! </span>');
于 2013-02-08T06:42:49.497 回答