任何人都可以告诉我为什么当我把2的起始值放入时这个循环不起作用但是当我做1或10时它会起作用吗?
var button = document.getElementById('generate');
var resultsDiv = document.getElementById('results');
var start;
var end;
button.onclick = function(){
resultsDiv.innerHTML = "";
start = document.getElementById('start').value;
end = document.getElementById('end').value;
generateTags(start,end);
};
function generateTags(start, stop){
for(i=start; i<=stop; i++){
console.log(i);
}
}
答案 0 :(得分:0)
这是因为document.getElementById("something").value
会返回string
。
因此您将值视为string
。在比较2
和10
时,字符串10
按字典顺序小于2
。所以它不起作用。有关详细信息,请see this
function generate()
{
var start = document.getElementById("start").value;
var stop = document.getElementById("stop").value;
console.log(typeof start, typeof stop);
start = parseInt(start);
stop = parseInt(stop);
console.log(typeof start, typeof stop);
for(var i=start;i<=stop;i++)
{
console.log(i);
}
}
<input id="start">
<input id="stop">
<button onclick="generate()">Generate</button>
在上面的示例中,我已使用parseInt
将字符串转换为数字并继续进行。您可以删除typeof
控制台。我刚添加它们来显示值的类型。