我努力了,但我无法理解。
我想输出数字,但是时间只输出一个数字。我需要创建这样的东西:
这应该在for循环中创建: http://jsfiddle.net/jv7H8/
但正如您所看到的,当数字>时,单元格中有多个字符。 10。
期望的结果应该是例如:
1,2,3,4,5,6,7,8,9,1,0,1,1,1,2,1,3,1,4 ....
有什么建议吗? :)
答案 0 :(得分:3)
首先将数字连接成一个字符串:
var s = '';
for (var i = 1; i <= 42; i++) s += i.toString();
然后循环字符串中的字符:
for (var i = 0; i < s.length; i++) {
// output s[i]
}
答案 1 :(得分:1)
以下是我的方法更新了您的jsfiddle:http://jsfiddle.net/jv7H8/2/
我改变的相关方面是添加一个for循环,通过你要输出的数字的长度进行处理:
var str = number.toString(); // the current number as you're looping through
for (var k = 0; k < str.length; k++) {
var oneLetterAtATime = str.charAt(k); // get the digits one at a time
output += "<td>" + oneLetterAtATime + "</td>";
}
number++;
修改:如果您只需要十九列,那么您需要为显示另一个<td>
的每个实例更新列计数器,但不要回到周围增加列计数器。即,
if (k > 0) {
j++;
}
这是一个更新版本,显示了它的工作原理:http://jsfiddle.net/jv7H8/21/
值得注意的是,当您在第19列中显示多个数字的数字时,没有一个非常好的方法可以不超过第19列。
答案 2 :(得分:0)
获取字符串中的所有字符:
var t = '';
var limit=100;
for (var j = 1; j<= limit; j++) t += j.toString();
var output='';
for (var j = 0; j < t.length; j++) {
output=output+','+t[i];
}
alert(output);
答案 3 :(得分:0)
请检查您的更新小提琴here
这将为您的目的服务。
以下是代码,大部分内容仅为您的代码:
rows = 3;
columns = 19;
number = 1;
var str = "";
output = '<table style="width:100%;">';
for(var i = 0; i < rows; i++) {
output += "<tr>";
for(var j = 0; j < columns; j++) {
output += "<td>" + number + "</td>";
str +=number;
number++;
}
output += "</tr>";
}
output += "</table>";
$("#game").html(output);
var strvalue="";
$.each(str, function(e,v){
if (e > 0){
strvalue = strvalue + ", "+ v;
}
else{
strvalue += v;
}
});
alert(strvalue);