Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过值jquery递增一个数字_Javascript_Jquery_Onclick_Increment - Fatal编程技术网

Javascript 如何通过值jquery递增一个数字

Javascript 如何通过值jquery递增一个数字,javascript,jquery,onclick,increment,Javascript,Jquery,Onclick,Increment,我有一个按钮,当点击时,它应该取一个随机数,并在每次点击按钮时将其原始值添加回其当前值。例如,如果随机数(var diamondGuess)是10,则数字10首先出现在div中(id=“d-num-test”)。无论何时单击该按钮,都应将10添加到div中显示的数值中。在重置该轮之前,随机数函数不会选择新的随机数 因此,如果我从10开始并单击该按钮,则页面上的div id=“d-num-test”应更改为20。再次点击,是30,然后是40,等等。。。。。我试着研究各种运算符和数学方法,但最接近的

我有一个按钮,当点击时,它应该取一个随机数,并在每次点击按钮时将其原始值添加回其当前值。例如,如果随机数(var diamondGuess)是10,则数字10首先出现在div中(id=“d-num-test”)。无论何时单击该按钮,都应将10添加到div中显示的数值中。在重置该轮之前,随机数函数不会选择新的随机数

因此,如果我从10开始并单击该按钮,则页面上的div id=“d-num-test”应更改为20。再次点击,是30,然后是40,等等。。。。。我试着研究各种运算符和数学方法,但最接近的是+=。如果10不是随机选择的话,这就行了。我尝试使用+=变量本身,但它会以指数方式翻倍(使用上面的示例为10、20、40、80)

任何建议都将不胜感激!这里是新手

谢谢大家!!奥利弗

$(文档).ready(函数(){
变量diamondNum=[1,2,3,4,5,6,7,8,9,10,11,12];
var diamondGuess=diamondNum[Math.floor(Math.random()*diamondNum.length)];
变量diamondNumDom=$('d-num-test');
文本(diamondGuess);
$(“#菱形”)。在(“单击”,函数()上){
text(diamondGuess+=diamondGuess);
});
});

为了防止覆盖您的
diamondGuess
值,您需要引入一个附加变量(
diamondValue
,在下面的代码段中)来跟踪当前值:

$(文档).ready(函数(){
变量diamondNum=[1,2,3,4,5,6,7,8,9,10,11,12];
var diamondGuess=diamondNum[Math.floor(Math.random()*diamondNum.length)];
var diamondValue=diamondGuess;
变量diamondNumDom=$('d-num-test');
文本(diamondValue);
$(“#菱形”)。在(“单击”,函数()上){
diamondValue+=diamondGuess;
文本(diamondValue);
});
});

下面是一个VanillaJS(jQuery免费)示例,说明了如何实现这一点。逻辑中的一个问题是
diamondGuess+=diamondGuess
,这意味着猜测将以指数形式增加(正如您所经历的那样)

您可以通过使用textContent的值来避免这种情况,或者像我下面所做的那样使用数据属性。由于data-*属性存储字符串,因此我使用一元加号(
+
前缀)将字符串转换为数值(如
+numBox.dataset.value++numBox.dataset.guess所示)

这种方法的优点在于它将猜测和值与元素相结合。只需做一点工作,您就可以将
id
s转换为
class
,并进行一些其他最小调整,您就可以在同一页面上使用独立的计算器

var diamondNum=[1,2,3,4,5,6,7,8,9,10,11,12];
设numBox=document.querySelector('d-num-test');
//初始化值并将猜测附加到元素
numBox.dataset.guess=diamondNum[Math.floor(Math.random()*diamondNum.length)];
numBox.dataset.value=numBox.dataset.guess;
numBox.textContent=numBox.dataset.guess;
//点击事件
document.addEventListener('click',函数(e){
if(如target.matches(“#diamond”)){
设numBox=document.querySelector('d-num-test');
numBox.dataset.value=+numBox.dataset.value++numBox.dataset.guess;
numBox.textContent=numBox.dataset.value;
}
},假)

菱形