我有以下代码:
function tryToDownload(url) {
oIFrm = document.getElementById('download');
oIFrm.src = url;
//alert(url);
}
function downloadIt(file) {
var text = $("#downloaded").text();
setTimeout(function(){ $("#downloadBar").slideDown("fast") }, 700);
setTimeout('tryToDownload("index.php?fileName='+file+'")', 400);
setTimeout(function(){ $("#downloadBar").slideUp("fast") }, 5000);
}
还有一个ID为“已下载”的DIV。所以代码是
<div id="downloded">230</div>
230表示该项目下载了230次。我想要做的是,当某个机构点击下载时,它会更新230到231.如何通过jquery帮助实现这一点。
答案 0 :(得分:1)
在调用所有setTimeOuts之后将其置于 downloadIt()函数内
var curr_val = $('#downloaded').text();
var new_val = parseInt(curr_val)+1;
$('#downloaded').text(new_val);
答案 1 :(得分:1)
这是一个使用新的jQuery 1.4热点的机会: - )
$("#downloaded").text( function (i,current) { return parseInt(current)+1;} ) ; //Works with jQuery1.4 and above
如果为.text()提供函数,则第二个参数是当前值,因此您可以根据需要在函数中使用它。
编辑:你可以使用返回+当前+ 1; 而不是返回parseInt(当前)+1; ,这样你就可以得到0 + 1 = 1而不是如果你以空div开头,NaN + 1 = NaN。
答案 2 :(得分:0)
这个怎么样:
var num = $("div#downloaded").html();
var num_new = parseInt(num, 10) + 1; // number add here as you want
$("div#downloaded").html(num_new);
答案 3 :(得分:0)
var div = $('#downloded');
div.text(parseInt(div.text(), 10) + 1);
示例(点击任意位置):http://jsbin.com/edure
答案 4 :(得分:0)
这样的事情会:
i = parseInt($("#downloaded").text());
$("#downloaded").text((i+1));
答案 5 :(得分:0)
var downloadCount = Number($("#downloaded").text);
$("downloaded").text(downloadCount + 1);
第一部分获取该元素中的文本并将其重新转换为数字,从而避免出现“2301”而不是“231”的任何问题。第二部分将文本设置为值+ 1。
将其包装成一个函数,并在单击下载时调用该函数。
答案 6 :(得分:0)
这个脚本怎么样:
<html>
<head>
<title>My Title</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var total_download = 0;
$("#download-it").click(function(){
total_download = total_download + 1;
$("#downloaded").text("Downloaded: " + total_download);
return false;
});
});
</script>
</head>
<body>
<form>
<div id="downloaded">Downloaded: 0</div><br />
<a id="download-it" href="#">click me!</a>
</form>
</body>
</html>