如何使用数组名称生成标记表并在其旁边显示文本框?

时间:2019-03-11 16:41:18

标签: javascript html arrays for-loop html-table

我正在尝试为一个项目创建标记表,该项目当前正在处理我拥有诸如

之类的名称的地方
var names = ["n1","n2","n3","n4","n5","n6","n7","n8"];

我想在表列中显示名称并生成一定数量的文本框,这些文本框是在循环中定义的,但到目前为止,我仍然无法同时显示名称的文本框。

    html+= "<table>";
    html+= "<table style='border:1px solid black;'><tr><th>Student Name</th><th>ICA's</th>";
    for(var i = 0; i<=names.length;i++)//retrieve names from the array
    {
        for(var j=1;j<=2;j++)//amount of textboxes need to be created
        {
            html+= ("<tr><td id='tableTD'>"+names[i]+"</td><td>"+txtBox+"</td></tr></table>");
        }
    }
    display.innerHTML = html;
}

这部分代码的结果是,我得到了重复的名称,但旁边却有文本框,但不是全部都在1行中,例如“ n1:textbox1,textbox2”

我必须在表格中显示所有内容,而且我仅限于html和javascript,而不能使用服务器端语言的jQuery。

我似乎无法理解问题的根源。

1 个答案:

答案 0 :(得分:0)

@诺亚B 下面的代码是我从您那里获得的用于显示表格的文件,这些表对我进行了一些修改以适应我的要求。

for(var i = 0; i<names.length;i++)//retrieve names from the array
    {
        html += "<tr id='row" + i +"'><td style='border:1px solid black;'>"+names[i]+"</td>";
        for(var j=1;j<=2;j++)//amount of textboxes need to be created
        {
            html+= "<td style='border:1px solid black;'><input type='text' class='stdMrk' placeholder='0' value='0' /></td>";

        }
        for(var k=1;k<=1;k++)//display project or final exams txt box
        {
            html+= "<td style='border:1px solid black;'><input type='text' class='stdMrk' placeholder='0' value='0' /></td>";

        }
        html += "</tr>";
    }

但是我的另一个问题是,现在我需要检索每行的值,并且从您看到的内容中,ive添加了一个附加的for循环来显示另一组与上一个类名相同的文本框。 / p>

例如,n1将从键盘输入3int值,而我必须计算该3value并将其返回。它必须是一个循环,每个名称都会重复。

这是我为检索该值而编写的代码,但它以1比1的形式显示了所有值,而没有任何办法知道它属于哪一行。

var txtValue = document.getElementsByClassName("stdMrk");
if(txtValue.length>0)
{
    for(var i = 0;i<=y;i++)
    {
        x += parseInt(txtValue[i].value);

    }
    alert(x);
}//edit ive manage to create this but still need to iterate through all the names...

先谢谢了。