需要逻辑解决方案来解决不可数的循环困境

时间:2014-06-05 08:32:51

标签: java css list while-loop css-selectors

假设我在java中有这种循环(不是一个确切的代码,它既不是真正有效的代码,只是为了给你一个关于情况的一般视角):

print "<ul>";
while (res = fetch(database)) {
    print ("<li>" + res.col['data'] + "</li>");
}
print "</ul>";

我有这个CSS,这使得列表中的最后一项具有红色。

ul li:last-child { color: red; }

这适用于大多数浏览器。问题是:

  • 我也需要在IE8上完成这项工作。
  • IE8不支持last-child。
  • 我无法测试“while”的当前迭代是否进入最后一次迭代。或者说,我无法检查循环何时结束。这不是一个普通的循环,但让我们这样说。所以我不能给最后一个<li>课程,比如class="lastchild"
  • 我也尝试使用javascript和jquery,两者都不能选择“last-child”,因为它们取决于选择的css,我认为。

在这种情况下,最佳方法是怎样的?感谢。

2 个答案:

答案 0 :(得分:1)

print "<ul>";
String liText=null;
while (res = fetch(database)) {
    if (liText!=null) {
        print ("<li>" + liText + "</li>");
    }
    liText=res.col['data'];
}

if (liText!=null) {
    print ("<li style='the last element style'>" + liText + "</li>");
}
print "</ul>";

移出最后一行的添加并在那里应用所需的样式

答案 1 :(得分:0)

假设问题出现在Java中,我想知道为什么没有办法检测最后一条记录。您可能需要首先重新考虑数据结构,在Map或List中填充数据然后迭代。

并且,如果那是不可能的,你可以选择StringBuilder instnace首先通过循环构建整个String html标签,然后用所需的样式替换最后一个li元素,然后将它放在print语句中用于渲染。

即使您尝试使用javascript进行编码,上述几点也是有效的,只需稍加改动即可。