我遇到了像 this 这样的问题。单击后第一行编号增加,但单击后第二行编号不增加。我希望点击后所有的数字都增加。我认为jquery代码是错误的,请有人帮我修复我的jquery代码。
我的代码:
<?php
include("mwcon.php");
?>
<html>
<head>
<link rel='stylesheet' type='text/css' href='/css/post.css'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#post-vote-top").click(function () {
$("#post-vote-middle").text(function(){
return ~~$(this).text() + 1
});
});
});
</script>
</head>
<body>
<?php
echo "
<div id='post'>
<table>
";
$no=1;
$q=mysql_query("SELECT * FROM t_post");
while($f=mysql_fetch_object($q)){
echo "
<tr>
<td id='post-nomor'>$no.</td>
<td id='post-vote' align='center'>
<div id='main'>
<div id='post-vote-top'></div>
<div id='post-vote-middle'>$f->vote</div>
<div id='post-vote-bottom'></div>
</div>
</td>
<td><a href='$url' target='_blank'><img src='$f->linkimg' width='80' height='50'></img></a></td>
</tr>
";
$no++;
}
echo "
</table>
</div>
";
?>
</body>
</html>
请帮帮我。谢谢。
答案 0 :(得分:2)
id
应该是唯一使用class
。您可以使用 next()
在点击元素
$(document).ready(function() {
$(".post-vote-top").click(function() {
$(this).next(".post-vote-middle").text(function(i, v) {
return parseInt(v, 10)+1;
});
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<td id='post-nomor'>$no.</td>
<td id='post-vote' align='center'>
<div class='main'>
<div class='post-vote-top'>up</div>
<div class='post-vote-middle'>1</div>
<div class='post-vote-bottom'></div>
</div>
</td>
<td></td>
</tr>
<tr>
<td id='post-nomor'>$no.</td>
<td id='post-vote' align='center'>
<div class='main'>
<div class='post-vote-top'>up</div>
<div class='post-vote-middle'>1</div>
<div class='post-vote-bottom'></div>
</div>
</td>
<td></td>
</tr>
</table>
&#13;