更改表格中的行颜色,html

时间:2013-11-03 02:39:05

标签: javascript html css

我想用html和css创建一个表。但我的问题是,我希望表中有2种颜色的行,一种橙色和一种白色......我使用javascript来填充表格。但我不能改变第二种情况下的颜色..当我使用Javascript时,我应该使用什么sintax来改变行的颜色,因为它给我一个错误...我的代码如下:

<table>
        <tr>
            <th>Account Type</th>
            <th>Minimun Required</th>
            <th>Rate</th>
            <th>Compounded</th>

        </tr>
                <!--To fill the table with javascript-->
            <script >
                for (var j=0;j<col1.length;j++){
                    if (j%2==0) {
                        document.write("<tr><td>"  + col1[j] + " </td>");
                        document.write("<td>" + col2[j] + "</td>");
                        document.write("<td>" + col3[j] + "</td>");
                        document.write("<td>" + col4[j] + "</td></tr>");
                            }
                    else
                    { 
                document.write("<tr bgcolor="#d9531e"><td>"  + col1[j] + " </td>");
                                document.write("<td>" + col2[j] + "</td>");
                document.write("<td>" + col3[j] + "</td>");
                document.write("<td>" + col4[j] + "</td></tr1>");
                }}

            </script>

        </table>

错误就在这一行:

document.write("<tr bgcolor="#d9531e"><td>"  + col1[j] + " </td>");

谢谢!

4 个答案:

答案 0 :(得分:3)

您正试图在双引号字符串文字中嵌套双引号。您需要将它们转义为\"

document.write("<tr bgcolor=\"#d9531e\"><td>"  + col1[j] + " </td>");

...或使用单引号:

document.write("<tr bgcolor='#d9531e'><td>"  + col1[j] + " </td>");

(不是我建议使用document.write()。)

请注意,使用CSS设置颜色通常被认为是最佳做法。您可以将以下内容添加到样式表中:

tr:nth-child(even) {
  background-color: #d9531e;
}

...它将自动为您执行每秒行颜色,如下所示:http://jsfiddle.net/rUK8a/

答案 1 :(得分:0)

一个问题是你使用相同类型的引号 - 你想使用不同的引号,所以不要终止你的字符串常量。您可以在语法颜色中看到问题。

 document.write("<tr bgcolor='#d9531e'><td>"  + col1[j] + " </td>");

答案 2 :(得分:0)

您收到错误是因为您在write()函数中有未转义的引号。试试这个:

document.write("<tr bgcolor=\"#d9531e\"><td>"  + col1[j] + " </td>");

或使用不同的引号,例如:

document.write("<tr bgcolor='#d9531e'><td>"  + col1[j] + " </td>");
只要没有空格,你甚至可以完全没有引号。我不推荐这种方法:

document.write("<tr bgcolor=#d9531e><td>"  + col1[j] + " </td>");

一般来说,由于唯一的区别是行的颜色,我建议你在if-else语句之外使用2-4列,这样你就不需要写两次了。

答案 3 :(得分:0)

使用内联表标记为特定行着色。您必须转义双引号或需要使用相反的引号。

    document.write("<tr bgcolor=\"color code\"><td></td>...</tr>");  // use \ to escape double quote

or 

    document.write("<tr bgcolor='color code'><td></td>...</tr>");  // use ' inside the " .