当我点击#upvote
时,#vote
增加1,点击#downvote
时减少1.但是当投票值为" -1"如果点击了upvote,则投票值变为" 1"而不是" 0"。
<script type="application/javascript">
$(document).ready(function (){
$('#upvote').click(function() {
var VoteValue = $('#vote').val();
$('#vote').text(VoteValue+1);
});
$('#downvote').click(function() {
var VoteValue1 = $('#vote').val();
$('#vote').text(VoteValue1-1);
});
});
</script>
<div id="upvote" style="font-size:22px;">+</div>
<div id="vote" style="font-size:22px;">0</div>
<div id="downvote" style="font-size:22px;">-</div>
任何可能出错的想法。
答案 0 :(得分:4)
$(document).ready(function (){
$('#upvote').click(function() {
var VoteValue = $('#vote').text();
$('#vote').text(parseInt(VoteValue)+1);
});
$('#downvote').click(function() {
var VoteValue1 = $('#vote').text();
$('#vote').text(parseInt(VoteValue1)-1);
});
});
注意: .text()
应该用于获取DIV的值而不是val()
答案 1 :(得分:2)
首先,您应该使用html()或text()而不是val(),val()用于输入或textarea。
然后,你应该使用parseInt,以确保你操纵正确的类型:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
如果这还没有解决,那么创建一个jsfiddle,以便我们可以重现问题。
最后,如果您在同一页面上有多个投票系统,请注意重复的ID。
答案 2 :(得分:2)
使用.text()
代替.val()
,并使用+
将字符串解析为数字。
$(document).ready(function (){
$('#upvote').click(function() {
var VoteValue = +$('#vote').text();
$('#vote').text(VoteValue+1);
});
$('#downvote').click(function() {
var VoteValue1 = +$('#vote').text();
$('#vote').text(VoteValue1-1);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="upvote" style="font-size:22px;">+</div>
<div id="vote" style="font-size:22px;">0</div>
<div id="downvote" style="font-size:22px;">-</div>
答案 3 :(得分:1)
首先,$('#vote').val()
应为$('#vote').text()
。现在这些值将为string
类型。 首先将它们解析为int 以正确处理它们。因为那样它只会附加数字而不是递增或递减。
$(document).ready(function () {
$('#upvote').click(function () {
var VoteValue = parseInt($('#vote').text());
$('#vote').text(VoteValue + 1);
});
$('#downvote').click(function () {
var VoteValue1 = parseInt($('#vote').text());
$('#vote').text(VoteValue1 - 1);
});
});
答案 4 :(得分:0)
在HTML文档中,.html()可用于获取任何元素的内容。 .val()用于输入框。 http://api.jquery.com/html/
var VoteValue1 = $('#vote').html();
OR
var VoteValue1 = $('#vote').text();