0

我想使用 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

4 回答 4

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/

于 2013-11-03T02:41:26.700 回答
0

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

 document.write("<tr bgcolor='#d9531e'><td>"  + col1[j] + " </td>");
于 2013-11-03T02:42:03.593 回答
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 列,这样你就不需要写两次了。

于 2013-11-03T02:45:03.470 回答
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 " .
于 2013-11-03T02:58:00.593 回答