对于HTML表的循环

For loop for HTML table

本文关键字:循环 HTML 对于      更新时间:2023-09-26

有人能告诉我这里做错了什么吗?我正在尝试使用输入坐标来使用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>";

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

<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坐标等于king y,那么显示一个K。你希望这两个条件都是真的,所以你需要并且想要使用&amp;。

此外,由于循环也可以嵌套,您可以在另一个循环中有一个循环,这对于创建所需的表结构是必要的。

最后,使用document.write输出表格并不常见,但由于您是初学者,所以这是可以的。通常我们会将一个字符串与一个变量连接起来,然后输出该变量。