我有一个Ajax函数,可以在点击时更新一些数据。我在post上发送变量作为函数参数。另一方面,我解析变量数组并在每个变量上应用函数。这是我的代码:
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,并递增所有'changenumber'id字段。但我希望success函数仅针对当前Ajax更新的<a name
元素执行。
知道该怎么做吗?
谢谢!
答案 0 :(得分:1)
您的身份证在页面上应该是独一无二的。你不能在页面上给出相同的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>');