0

我有一个嵌入了 html 的 PSP 页面。我需要放置另一个 for 循环,这样我就可以在旁边插入另一个 %s background-color:,它将在 html 表中插入适当的颜色来着色。

例如,我需要插入for z in colours,以便它可以遍历颜色列表并插入正确的颜色。无论我在哪里尝试插入 for 循环,它似乎都不起作用,它最常见的是为表格中的每个单元格着色 60 次,然后移动到下一个单元格并重复自身并崩溃我的网络浏览器。

颜色保存在一个称为颜色的表中。

下面的代码:

<table>
<%
s = ''.join(aa[i] for i in table if i in aa)
for i in range(0, len(s), 60):
    req.write('<tr><td><TT>%04d</td>' % (i+1));
    for k in s[i:i+60]:
            req.write('<TT><td><TT><font style="background-color:">%s<font></td>' % (k));
    req.write('</TT></tr>')
#end
%>
</table>

-----已编辑-----

插入提供的 ebo 代码,它将表格全部着色为一种颜色。颜色列表包含多种颜色,例如colour = ['yellow', 'yellow', 'yellow', 'yellow', 'red', 'red', 'red', 'red']

<table>
<%
s = ''.join(aa[i] for i in table if i in aa)
for i in range(0, len(s), 60):
    req.write('<tr><td>%04d</td>' % (i+1));
    for j, k in enumerate(s[i:i+60]):
        req.write('<td><font style="background-color:%s;">%s<font></td>' % (colour[j % len(colour)], k));
    req.write('</tr>')
#end
%>
</table>
4

1 回答 1

1

我猜你想要每列一种颜色。最好的主意是使用枚举:

s = ''.join(aa[i] for i in table if i in aa)
for i in range(0, len(s), 60):
    req.write('<tr><td>%04d</td>' % (i+1))
    for j, k in enumerate(s[i:i+60]):
        req.write('<td style="background-color: %s;">%s</td>' % 
                     (colours[j % len(colours)], k))
    req.write('</tr>')

我去掉了所有的TT标签。他们大多是错误的,要么没有关闭,要么跨越了其他元素。

更新这应该可以。如果每个字段都正确填写,请查看来源。还下载Firebug并查看已解析的 html 代码。根据您的其他 html 故障,它可能会有所不同。

colour = ["red", "red", "green", "yellow"]

print "<table>"
s = '1234567890'
for i in range(0, len(s), 60):
    print('<tr><td>%04d</td>' % (i+1));
    for j, k in enumerate(s[i:i+60]):
        print('<td><font style="background-color:%s;">%s<font></td>' % (colour[j % len(colour)], k));
    print('</tr>')
print "</table>"

我将以下代码的输出通过管道传输到一个 html 文件中并打开它。按预期工作。

python table.py > table.html
firefox table.html

我猜你的代码中有一些额外的错误会导致解析混乱。

于 2010-03-12T13:57:45.347 回答