对于HTML表的循环

时间:2015-12-28 14:45:41

标签: javascript html-table

有人可以告诉我这里做错了吗?我试图使用输入坐标输出到使用for循环的html表。

for(i=1; i<10; i++);{
    i = x;
    document.writeln(mytable + i)
}    
    for(j=1; j<10; j++);{
    j = y;
    document.writeln(mytable + j)
    }
        if(kingX == x || kingY == y){
        document.writeln('K');
        }
            else if(queenX == x || queenY == y){
            document.writeln('Q');
            }
                else(x || y <=10);{
                document.writeln(' ');
                }

mytable = mytable + "</tr></tbody></table>";

1 个答案:

答案 0 :(得分:1)

所以我重写了你的代码,以便你可以看到它应该是什么样子。

<script>
var isInCheck = '';

var kingX  = prompt('Enter X co-ordinate of King? ','');
var kingY  = prompt('Enter Y co-ordinate of King? ','');
var queenX = prompt('Enter X co-ordinate of Queen? ','');
var queenY = prompt('Enter Y co-ordinate of Queen? ','');

document.write('<table>');

for ( var x=0; x<10; x++) {
    document.writeln('<tr>');
    for (var y=0; y<10; y++) {
        // This is inside of a nested for-loop
        document.writeln('<td>');
        if (kingX == x && kingY == y) {
            document.writeln('K');
        } else if(queenX == x && queenY == y) {
            document.writeln('Q');
        } else {
            document.writeln(' ');
        }
        document.writeln('</td>');
    }
    document.writeln('</tr>');
}

document.write( '</table>' );
</script>

您发布的代码中存在两个主要错误。

第一个,不要这样做,因为分号不会执行大括号之间的代码:

for(j=1; j<10; j++);{

它应该看起来像这样(没有分号):

for(j=1; j<10; j++) {

这可能是您可能遇到的混乱的主要原因。

其次,你想这样做:

if (kingX == x && kingY == y) {

不是这个:

if (kingX == x || kingY == y) {

你写的代码是:如果x坐标等于kingX,或者y坐标等于kingY然后显示K.你想要两个条件都是真的,所以你需要并且想要使用&amp;&amp;。 / p>

此外,for循环也可以嵌套,你可以在另一个循环中创建一个循环,这是创建所需表结构所必需的。

最后,使用document.write输出表是不常见的,但由于你是初学者,所以没关系。通常我们将字符串与变量连接起来然后输出该变量。