简单JavaScript HTML表生成器

简单JavaScript HTML表生成器,javascript,html-table,Javascript,Html Table,这是JavaScript HTML表格生成器 输出应为: 问题就在这里。我没有办法完成我的工作,但我尽我最大的努力去编码。有人能帮我吗?请 function progress(){ var txt = document.form.txt.value; var line = txt.split("\n"); // every line of context var line_num = line.length; // total line for (var i =

这是JavaScript HTML表格生成器

输出应为:

问题就在这里。我没有办法完成我的工作,但我尽我最大的努力去编码。有人能帮我吗?请

function progress(){
    var txt = document.form.txt.value;
    var line = txt.split("\n"); // every line of context
    var line_num = line.length; // total line
    for (var i = 0; i<line_num; i++)
    {
        var seq = line[i].split(" "); //seq[0]: name of label, seq[1] : context
        // CODE START

        // CODE END
    }
    var out="<table>"; // if the value exist, using table to display

    // CODE START

    // CODE END
    out=out+"</table>"
    document.getElementById('out').innerHTML=out; // display the result

}
函数进度(){
var txt=document.form.txt.value;
var line=txt.split(“\n”);//上下文的每一行
var line_num=line.length;//行总数

对于(var i=0;i我已经根据您的要求创建了样本

请检查这个代码

函数进度(){
var txt=document.form.txt.value;
var line=txt.split(“\n”);//上下文的每一行
var line_num=line.length;//行总数
var uniqueValue=[];
var值=[];
对于(变量i=0;i最大长度)
maxLength=值[i]。长度
}
如果(长度>0)
{
var out=”“;//如果该值存在,则使用表显示

对于(var i=0;i我也尝试了一下。这种方法应该可以让您了解动态创建的DOM元素背后的重要思想。我认为这是一个更适合生产的算法版本,因为只使用了原生JS

我的方法的主要区别在于,它完全使用动态DOM元素来构建表,而不是静态html标记。在某些情况下,它更易于阅读,也更灵活,特别是如果您希望动态处理标记属性。我还设法将复杂性降低了1个级别。下面是我的尝试,以使其成为简单易读:

document.getElementById(“btn”).addEventListener(“单击”),函数(事件){
进步();
},假);
功能进展(){
var txt=document.form.txt.value;
var line=txt.split(“\n”);//上下文的每一行
var line_num=line.length;//行总数
//构建标签->内容关联
变量输入={};

对于(var i=0;iHint:如果您正在构建一个表,那么在进入循环之前,您需要确定一个初始值,并在循环中添加一些附加值。首先手动编写少量值的表。一旦您获得了逻辑概念,它就会简单得多。祝您好运:)@弗雷德里克,你有这样的例子吗?你能创造一个吗jsfiddle@TC2Bee我尝试了一些东西并添加了它作为替代答案。希望您喜欢这个想法。首先,我找到了唯一的值并存储在uniqueValue变量中。例如A、B、C。我还将等效值存储到多维数组中。使用多维数组,我创建了表格。你能谈谈你的逻辑的更多细节吗?我无法理解你的算法,比如“构建标签-->内容关联”@TC2Bee这里的主要思想是构建一个json对象,该对象具有每个标签的键。然后,对于每个标签,如果它不存在,则在此位置创建一个仅包含一个内容的数组。否则,这意味着该数组已经存在,因此您可以将内容推送到它的末尾。有意义吗?
A 1
A 2
A 3
B 1
B 2
C 1
C 2
C 3
C 4
function progress(){
    var txt = document.form.txt.value;
    var line = txt.split("\n"); // every line of context
    var line_num = line.length; // total line
    for (var i = 0; i<line_num; i++)
    {
        var seq = line[i].split(" "); //seq[0]: name of label, seq[1] : context
        // CODE START

        // CODE END
    }
    var out="<table>"; // if the value exist, using table to display

    // CODE START

    // CODE END
    out=out+"</table>"
    document.getElementById('out').innerHTML=out; // display the result

}
<!DOCTYPE html>
<html>
   <head>
      <meta charset = "utf-8">
        <title> HW3 </title>
        <script type="text/javascript" src="abc.js"></script>
        <style type = "text/css">
        table
        {
            width: 300px;           
            border:1px solid black;
            border-collapse : collapse;        
        }
        tr td
        {
            border:1px solid black;
        }
        </style>
    </head>
    <body>  
        <form name = "form" enctype="multipart/form-data" id="form" method="post" onsubmit="return false;">
            <label><textarea name="txt" rows="20" cols = "40"></textarea></label>
            <br>
            <button type="submit" onclick = "javascript:progress()">Submit</button>
        </form>
        <p id= "out"></p>
    </body>
</html>