我在我的一个项目中使用ajax投票系统。问题是我用一个带有id的div来显示选票。因此,当有人在任何一篇文章中点击“向上”或“向下”时(一页中有这么多的帖子)。它是一个php循环)它总是在第一个div中显示。这是我的密码
$(function() {
$(".vote").click(function() {
var id = $(this).attr("id");
var name = $(this).attr("name");
var dataString = 'id=' + id;
var parent = $(this);
if (name == 'up') {
$(this).fadeIn(200).html;
$.ajax({
type: "POST",
url: "vote_up.php",
data: dataString,
cache: false,
success: function(html) {
$("#display-vote").html(html);
}
});
} else {
$(this).fadeIn(200).html;
$.ajax({
type: "POST",
url: "vote_down.php",
data: dataString,
cache: false,
success: function(html) {
$("#display-vote").html(html);
}
});
}
return false;
});
});HTML
<div class="vote-box">
<a href="" class="vote" id="<?php echo $PostId; ?>" name="up"></a>
<div id="display-vote"><?php echo $Votes; ?></div>
<a href="" class="answer-vote down" id="<?php echo $PostId; ?>" name="down"></a>
</div>我是否可以在正确的地方显示选票呢?任何帮助都很合适。
发布于 2014-03-19 17:07:06
当然不用身份证了?
HTML:
<div class="vote-box">
<a href="" class="vote" id="<?php echo $PostId; ?>" name="up"></a>
<div class="display-vote"><?php echo $Votes; ?></div>
<a href="" class="answer-vote down" id="<?php echo $PostId; ?>" name="down"></a>
</div>JavaScript:
success: function(html) {
$(this).parent().find('.display-vote').html(html);
}发布于 2014-03-19 17:07:42
Id属性应该是唯一的。如果您有多个具有相同id的元素,那么在执行类似的操作时,$('#myNotSoUniqueId')总是会返回第一个元素。
作为一个快速的解决方案,我建议你不要
<div id="display-vote"><?php echo $Votes; ?></div>有类似的
<div class="display-vote" data-id="<?php echo $PostId; ?>">
<?php echo $Votes; ?>
</div>在javascript中有这样的东西:
$(".display-vote[data-id='" + postId +"'])按特定的数据id属性选择元素
https://stackoverflow.com/questions/22512806
复制相似问题