有这样的php代码
<?php
$data = parse_ini_file("likes.ini"); // Парсим INI-файл
for($id=1; $id<4;$id++){
$likes = $data[$id]; // Получаем количество лайков у статьи
?>
<div id="like" data-id="<?=$id?>">
<?=$likes?>
</div>
<?php
}?>
在 js 上
<script type="text/javascript">
$(document).ready(function () {
$("#like").bind("click", function (event) {
/*if (get_cookie("VoiceLook") != "Yes") {*/
$.ajax({
url: "like.php",
type: "POST",
data: ("id=" + $("#like").attr("data-id")),
dataType: "text",
success: function (result) {
if (result) {
$("#like").text(Number($("#like").text()) + 1);
} else alert("Error");
}
});
/*document.cookie = "VoiceLook=Yes";
}
else{
alert("Вы уже голосовали!");
}*/
});
});
function get_cookie(cookie_name) {
var results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]*)(;|$)');
if (results)
return (unescape(results[2]));
else
return null;
}
</script>
即页面上显示多个id相同的div,点击时,数字应该增加+1。(这是一个点赞系统,通过 like.php 进入文件)。但是发现一直只有id=1(第一个div的)传给like.php文件,结果只有1个div可以增加+1。这怎么能解决?
我理解js的问题,它不能正确理解我点击的是哪个id,所以一直发送id=1。
ID必须是唯一的,在页面上只有一次,所以当你点击时,
с id="like"页面上的第一个元素被选中,添加到你的元素中class="like"并在 js 中处理类元素上的单击事件
您不能在同一页面上使用具有相同元素的多个元素
id(就像您对 所做的那样id="like")。在您的情况下$("#like"),将始终返回第一个元素。改用
class='like'_id