实际上,我使for loop
正常工作,但是现在我想一次单击按钮就获得循环值,但是我无法获得。怎么了?
当我单击按钮时,我得到10分,但是我想得到一个一个,就像我第一次单击按钮时一样,当我单击按钮时它是2分,然后是3分。
$(document).ready(function(){
var i;
$('button').click(function(){
for( i=1; i<=10; i++)
$(this).text(i);
});
alert(i);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<button>1</button>
答案将不胜感激!
答案 0 :(得分:3)
您不能为此使用for
循环(除非您await
构造了Promises
,这有点令人费解)–而是递增并提醒i
在每次处理程序调用之前,直到第十个:
let i = 2;
$('button').click(function() {
if (i <= 10) {
console.log(i);
$(this).text(i);
i++;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<button>1</button>
如果您感到好奇,可以在Promise
循环中使用for
方式:
const button = $('button');
let i = 2;
const resolves = [];
const promises = Array.from(
{ length: 10 },
(_, i) => new Promise((resolve) => {
resolves.push(resolve);
})
);
(async () => {
for (let i = 0; i < 9; i++) {
await promises[i];
button.text(i + 2);
}
})();
button.on('click', () => {
if (resolves.length) resolves.shift()();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<button>1</button>
答案 1 :(得分:2)
for loop
的用途与您的用例不同。您必须在每次单击时增加单个变量并显示在内部按钮。
var i =1;
$('#button').click(function(){
if(i<10)i++;
$(this).attr('value',i);
});
// This is how you could have acheived through loop , but not recommended because of extra memory and calculation.
var k =1;
$('#loopbutton').click(function(){
k++;
for(j=1;(j<=k && j<=10);j++){
$(this).attr('value',j);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="button" value="1" />
<h3>Now Using For loop</h3>
<input type="button" id="loopbutton" value="1" />
答案 2 :(得分:0)
您将在每次单击按钮时执行整个循环。试试这个:
$(document).ready(function(){
var i = 0;
$('button').click(function(){
i++;
$(this).text(i);
alert(i);
})
答案 3 :(得分:0)
getPreferred/Minimum/MaximumSize
$('#AddButton').click( function()
{
var input = $('#TextBox');
input.val(parseInt(input.val()) + 1);
if(input.val()>=10){
alert("this is last limit");
input.val(0) ;
}
});
您也可以这样子
答案 4 :(得分:0)
尝试一下。如果您不希望停在10点,请改用注释掉的语句。
$(document).ready(function(){
var i = 1;
$(document).on('click', 'button', function(){
$(this).text(i<10?++i:i);
//$(this).text(++i);
});
});