如何正确运行此脚本以在运行时显示表?

时间:2010-08-27 12:17:03

标签: javascript html

我正在尝试使用脚本在运行时显示包含数据的表。 我从表头调用了脚本。是否可以从表头中调用函数。

</HEAD> 
<BODY> 
<TABLE id="dataTable" width="350px" border="1" onload="start('dataTable');"> 
<TR> 
<THEAD>
<TR>
<TH>Select</TH> 
<TH>Id</TH> 
<TH>Name</TH>
<TH>Age</TH>
<TH>Dept</TH>
<TH>Option</TH> 
</TR> 
    </THEAD>

    </TABLE> 

</BODY> 
</HTML>

脚本是

    function start(dataTable) {
            var data = new Array();
        var id;
        var name;
        var age;
        var dept;
        data[0].id = "1";
        data[0].name = "Tamil";
        data[0].age = "23";
        data[0].dept = "CSE";
        data[1].id = "1";
        data[1].name = "Tamil";
        data[1].age = "23";
        data[1].dept = "CSE";
        data[2].id = "1";
        data[2].name = "Tamil";
        data[2].age = "23";
        data[2].dept = "CSE";


        for (var i = 0; i<data.length; i++)
            {
            var table = document.getElementById(tableID);
            var rowCount = data.length;
            var row = table.insertRow(rowCount);

        //Check box
            var cell1 = row.insertCell(0);
            var element1 = document.createElement("input");
            element1.type = "checkbox";
            cell1.appendChild(element1);
        //ID Column
            var cell2 = row.insertCell(2);
            cell2.innerText = data[i].id;
        //Name Column
            var cell3 = row.insertCell(3);
            cell3.innerText = data[i].name;
        //Age Column    
            var cell4 = row.insertCell(4);
            cell3.innerText = data[i].age;
        //Dept Column
            var cell5 = row.insertCell(5);
            cell5.innerText = data[i].dept;
        //Button Column
            var cell6 = row.insertCell(6);
            var element2 = document.createElement("input");
            element2.setAttribute("type", "button");
            element2.setAttribute("id", "dataRow"+id);
            element2.setAttribute("value", "Edit");
            cell6.appendChild("element2");
            }
      }

输出只是标题。我无法将数据放到表格中。

提前感谢您的建议。

2 个答案:

答案 0 :(得分:0)

只需在<script>后的</table>标记中调用您的脚本即可。您的脚本应该能够看到表元素,因为它们已经加载

答案 1 :(得分:0)

  

宽度= “350像素”

px是CSS。使用HTML属性时没有px

  

的onload = “启动( '的dataTable');”

load上没有<table>个事件,永远不会调用此事件。在表格后放一个<script>元素来调用函数。

  

var data = new Array();

为了理智,请使用[]数组文字语法:

var data= [
    {id: 1, name: 'Tamil', age: 23, dept: 'CSE'},
    ...
];
  

var id; [和名称等]

你永远不会使用这些变量。声明var s与对象的成员无关。

  

的document.getElementById(TABLEID)

您将该变量dataTable称为tableID

  

cell2.innerText = data [i] .id;

innerText是非标准的IE扩展程序。首先考虑使用标准textContent属性(如果可用),或者只使用普通的cell2.appendChild(document.createTextNode(data[i].id));,这种支持比任何一种都要广泛。

  

element2.setAttribute(“type”,“button”);

永远不要在HTML文档中使用getAttribute / setAttribute,IE中存在错误。而是使用DOM Level 2 HTML属性,无论如何都更容易阅读。 element2.type= 'button';

  

cell6.appendChild( “element2的”);

这是一个字符串,而不是变量element2

相关问题