首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Javascript将嵌套循环打印到外部循环的输出中?

问如何使用Javascript将嵌套循环打印到外部循环的输出中?
EN

Stack Overflow用户
提问于 2015-02-02 08:45:38
回答 4查看 1.3K关注 0票数 0

JavaScript:

代码语言:javascript
复制
var rows = prompt("Enter amount of rows");
    columns = prompt("Enter amount of columns");


            for(counter = 0; counter <= rows; counter++){
                document.getElementById("table").innerHTML += "<tr class=\"rows\"></tr>";

                            for(i = 1; i <= columns; i++){
                document.getElementByTagName("tr").innerHTML += "<td>" + i + "</td>";
            }

HTML:

代码语言:javascript
复制
<div id="wrapper">
		<table id="table">
		</table>
</div>

​

如何让循环中的循环打印用户输入的列数,以及列中'i‘的值?当我运行它时,我得到了第一个循环的输出,但我不能让第二个循环写入第一个循环的输出。我很感谢你的帮助。

编辑:

好的,我试着修改代码,结果是这样的。仍然不能工作,但我认为这是有意义的?我正在尝试使用用户输入创建一个表。

HTML保持不变

Javascript:

代码语言:javascript
复制
var rows = prompt("Enter amount of rows");
                columns = prompt("Enter amount of columns");

            if(isNaN(rows) || isNaN(columns) || rows < 1 || columns < 1){
                alert("Please enter a whole positive number!");
            }
                else{

                    for(i=0; i<rows; i++){

                    document.getElementById("table").innerHTML += document.write("<tr>");
                        for(j=1; j<columns; j++){
                            document.getElementById("table").innerHTML += "<td>" + j + "</td>;
                        }
                    document.getElementById("table").innerHTML += document.write("</tr>");
                    }
                }
            }
EN

回答 4

Stack Overflow用户

发布于 2015-02-02 09:17:46

没有getElementByTagName,我相信你指的是getElementsByTagName,它返回一个元素列表。

一个快速的“解决方案”是将行更改为document.getElementsByTagName("tr")counter.innerHTML += "“+i+ "";

如果使用文档元素,我建议使用document.createElement和document.appendChild。

代码语言:javascript
复制
var rows = prompt("Enter amount of rows");
var columns = prompt("Enter amount of columns");

var table = document.getElementById("table");

for(counter = 0; counter <= rows; counter++){
    var row = document.createElement("tr"); //creates our row
    row.className = "rows"; //applies a class

    for(i = 1; i <= columns; i++) {
        var column = document.createElement("td"); //creates a column
        column.appendChild(document.createTextNode(i)); //appends a text node with the value of 'i'
        row.appendChild(column); //Adds the column to our row
    }
    table.appendChild(row); //Add our row to the table
}
票数 1
EN

Stack Overflow用户

发布于 2015-02-02 08:53:00

这里有一个使用jquery的解决方案(不需要重新发明轮子) //css table tr td {border: 1px纯灰;}

代码语言:javascript
复制
//html
<table id="table">

</table>

$(document).ready(function() {
     var rows = 10, cols = 5, i, j, row, table = $("#table");

    for ( i = 0; i < rows; i++) {
       row = $("<tr></tr>");
       for ( j = 0; j < cols; j++) {
           row.append("<td>"+ i + ":" + j +"</td>");
       }
       table.append(row);
    }
});

单击下面的链接查看工作示例http://jsfiddle.net/k9z0mxo0/2/

票数 0
EN

Stack Overflow用户

发布于 2015-02-02 09:28:12

代码中的这一行无法通过document.getElementByTagName("tr")。

试一下这个例子:

代码语言:javascript
复制
var rows = +(prompt("Enter amount of rows")); //parse to number
var columns = +(prompt("Enter amount of columns"));
var html = []; //array
var cnt = 1;

for(var r = 1; r <= rows; r++){
    html.push('<tr class="row">');
    for(var c = 1; c <= columns; c++) {
       html.push('<td>');
       html.push(cnt ++);
       html.push('</td>');
    }
    html.push('</tr>');
}
document.getElementById("table").innerHTML = html.join('');//concate string to build inner html for the table
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28269697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档