我想用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>");
谢谢!
答案 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 " .