使用Javascript创建表

时间:2011-11-16 18:53:00

标签: javascript html arrays for-loop

我在使用Java脚本创建显示数组的表时遇到问题。我必须使用外部Javascript文件来创建数组,并使用for循环来创建和填充表。我遇到的问题是脚本标签内部没有发生任何事情。我可以写“Document.write('Hellow World!')”并没有任何反应。因此,当我尝试使用数组创建for循环时,并不奇怪,没有任何反应。任何帮助,将不胜感激。这是我第一次以这种方式使用Javascript,教授提供的注释没有关于如何创建选项卡的相关信息; e使用for循环。

myarray.js

var classArray = new Array();
classArray[0] = "CST415 Software Enterprise II";
classArray[1] = "CST420 Foundations for Distruibuted Web Applications in Java"
classArray[2] = "CST433 Database Technology"
classArray[3] = "Ethics and Professional Computing"
classArray[4] = "Introdiction to Graphics Programming"

怀疑密码:

<table class="classes">
    <tr>
        <td>
            Classes Taken for Computer Science Major
        </td>
    </tr>
        <script type="text/javascript" src="myarray.js" >
            for(var i=0; i<5;i++){
                document.write('<tr><td>');
                document.write(classArray[i]);
                document.write('</td></tr>');

            }
        </script>
</table>

6 个答案:

答案 0 :(得分:3)

您不能只有一个<script>加载外部.js文件(通过src=属性) AND 包含自己的内嵌代码(您的环)。您必须将其分为两部分:

<script type="text/javascript" src="myarray.js"></script>
<script type="text/javascript">
   for (...) {
      ....
   }
</script>

答案 1 :(得分:2)

对于那些从谷歌进来并发现其他答案不满意的人。这是一个介绍,没有jQuery:

var table = document.createElement("table");
var tableBody = document.createElement("tbody");

var row = document.createElement("tr");

for (var i = 0; i < 5; i++) {
    var cell = document.createElement("td");
    var cellText = document.createTextNode("This is cell " + i);
    cell.appendChild(cellText);
    row.appendChild(cell);
}

tableBody.appendChild(row);

table.appendChild(tableBody);

jsFiddle here中试用。

答案 2 :(得分:0)

您不能在外部脚本标记内部使用内联脚本。

它们需要是两个独立的标签。

答案 3 :(得分:0)

我宁愿将您的代码重构为:

<script type="text/javascript">
var myTable = document.getElementById('my_table');
// use array literals, not new Array()
var elements = [
    "CST415 Software Enterprise II",
    "CST420 Foundations for Distruibuted Web Applications in Java",
    "CST433 Database Technology",
    "Ethics and Professional Computing",
    "Introdiction to Graphics Programming"
].map(function(title) {
     return '<tr><td>' + title + '</td></tr>'
});

document.getElementById('my_table').tBodies[0].innerHTML = elements.join('');
</script>

<table id="my_table" class="classes">
    <thead>
      <tr>
        <td>
            Classes Taken for Computer Science Major
        </td>
      </tr>
    </thead>
    <tbody>
    </tbody>
</table>

您可以在此处查看:http://jsfiddle.net/a3X7A/

答案 4 :(得分:0)

可能不是最好的方法,但我用jQuery实现了这个目标

<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="myarray.js" >

<script type = "text/javascript">
for (i=0; i<5; i++) {
   $("#TableName").append("<tr><td>" + classArray[i] + "</td></tr>");
   //or if your table doesn't have a name you can find by element or by class
   $(".classes").....
   $("table").....
}
</script>

答案 5 :(得分:0)

__author__ = 'kunaln'

a=input("enter first value ")

g=(int)(a)*(int)(1)
print (g)

k=(int)(a)*(int)(2)
print (k)

u=(int)(a)*(int)(3)
print (u)

n=(int)(a)*(int)(4)
print (n)

b=(int)(a)*(int)(5)
print (b)

z=(int)(a)*(int)(6)
print (z)

x=(int)(a)*(int)(7)
print (x)

y=(int)(a)*(int)(8)
print (y)

p=(int)(a)*(int)(9)
print (p)

d=(int)(a)*(int)(10)
print (d)