我有一个隐藏的输入#start这个值用于显示一系列返回的数据(它是索引的起点)每次单击#next我需要增加它的值。
$("#next").click(function() {
$("#start").val() + 80;
)};
这是对的吗?或者,还有更好的方法? 全部!
答案 0 :(得分:6)
试试这个(demo):
$("#next").click(function() {
$("#start").val(function(i,v){
return parseInt(v,10) + 80 || 0;
});
});
答案 1 :(得分:3)
您需要将值转换为整数,向其中添加任意数字,然后将其保存回来:
$("#next").click(function(){
var startElement = $("#start");
var value = parseInt(startElement.val(), 10);
startElement.val(value + 80);
});
答案 2 :(得分:1)
您所做的只是检索val并向其添加80,您实际上并未将其设置回元素上的值。为此,请尝试以下方法:
$("#next").click(function() {
$("#start").val( parseInt($("#start).val()) + 80 );
)};
这有点低效,因为你将选择#start两次。相反,我会将#start选项缓存在一个变量中:
$("#next").click(function() {
var startElement = $("#start");
startElement.val( parseInt(startElement.val()) + 80 );
)};
答案 3 :(得分:1)
这是另一种方式。它直接访问value
属性并使用~~
来避免可能的八进制或NaN
问题。
$("#next").click(function() {
var start = document.getElementById("start");
start.value = ~~start.value + 80;
});
或者更好的是,如果可以多次点击该按钮,则只运行一次#start
选择器。
// cache "start" outside the handler
var start = document.getElementById("start");
$("#next").click(function() {
start.value = ~~start.value + 80;
});
答案 4 :(得分:0)
使用一点封闭模式:
$("#next").click(function cli() {
var v = 0;
return function() {
$("#start").html(v += 80);
};
}());