如何根据条件改变table单元格的颜色? 
比如: 
第一条记录的flag=1;红色; 
第三条记录的flag=3;蓝色; 
不是隔行变色!!是根据单元格的内容进行判断。 
A G
B D
C

解决方案 »

  1.   

    建立一个flag与颜色之间的映射var o = {
      "1":"Red",
      "3":"Blue"
    }if(改变条件触发)
    {
         //获取flag
         //设当前单元格为td
         td.style.backgroundColor = o[flag];
    }
      

  2.   

    建立一个flag与颜色之间的映射var o = {
      "1":"Red",
      "3":"Blue"
    }if(改变条件触发)
    {
         //获取flag
         //设当前单元格为td
         td.style.backgroundColor = o[flag];
    }
      

  3.   

    那就把条件加上就可以了啊,
    if(条件){
      document.getElementById("xx").style.color=o[flag];
    }
      

  4.   


      <TABLE id="tab1">
      <TR>
    <TD flag="1">A</TD>
    <TD>G</TD>
      </TR>
      <TR>
    <TD>B</TD>
    <TD>D</TD>
      </TR>
      <TR>
    <TD>E</TD>
    <TD flag="3">C</TD>
      </TR>
      </TABLE>
      <SCRIPT LANGUAGE="JavaScript">
      <!--
    var tab = document.getElementById("tab1");
    for (var i=0; i<tab.rows.length; i++){
    for (var j=0; j<tab.rows[i].cells.length; j++){
    var td = tab.rows[i].cells[j];
    var fla = td.getAttribute("flag");
    switch (fla){
    case "1": td.style.color = "red";break;
    case "3": td.style.color = "blue";break;
    default: td.style.color = "black";
    }
    }
    }
      //-->
      </SCRIPT>
      

  5.   

    这个会更简单些 td[flag="1"] 
        {
         color:red;
        }
        div[flag="2"]
        {
         color:Blue;
        }
      

  6.   

    ie6下面这样的能识别?比较复杂的判断都是用js来实现的,用JQuery之类的选择器更方便些
      

  7.   

    谢谢各位,可能是我没有把问题说清楚。
    flag 是数据表里的一个字段,从数据库将数据查询出来后,显示在table里。
    存放 flag 值的 td 是隐藏的。
    循环显示完数据后,如何根据 flag 的值来改变前面两列的颜色?
    最好不要用循环的方式来做,因为还有一列是隐藏的值,而且它是备注型的。
    因为循环到这列时就死到那儿了。这一点大家可能没理解。反正不要用 for 就可以。
    就是判断某列某行的值,如何判断?
      

  8.   

    从数据库的表里取出4列数据,只显示两列,将flag, re这两列不显示;
    前面两列是:编号;姓名;至于用for 循环那儿为什么会“死”,你可以试一下;
    在re里以格式的方式存入一些数据;然后在以格式的形式显示出来;
    格式是以空格,回车这些符号。 <td style="display: none;">
    <pre><%=sc.getRe()%></pre>
    </td>
    </tr>
    <%
    }
    %>
    </table> </div> <textarea id="re"
    style="width: 100%; height =20%; font-size: 12pt">...
    </textarea>
      

  9.   

    晕~ 
    “前两列”是指……?
    隐藏就隐藏呗,为啥循环到这列就会死掉?
    LZ还是把代码贴出来吧,有码有真相!我把有隐藏备注列取消,用for 是可以的。
    如果有什么办法能解决鼠标在行移动时能够在<text>里显示备注内容的话,单元格根据条件变色的问题
    用for 也是可以解决的。可不能一移动鼠标就向数据库发送查询语句。如何处理这个问题?
    我现在是将数据提取过来以隐藏的方式来处理的。当鼠标在行之间移动时,将隐藏的备注内容显示在<text>里。
      

  10.   


    那只循环行,不循环到单元格里面,应该是没问题的吧?  <TABLE id="tab" border="1">
      <TR>
    <TD>编号</TD><TD>姓名</TD><TD>flag</TD><TD>备注</TD>
      </TR>
      <TR>
    <TD>01</TD><TD>张三</TD><TD>1</TD><TD>备注</TD>
      </TR>
      <TR>
    <TD>02</TD><TD>李四</TD><TD>3</TD><TD>备注</TD>
      </TR>
      </TABLE>
      <SCRIPT LANGUAGE="JavaScript">
      <!--
      var tab = document.getElementById("tab");
      for (var i=0; i<tab.rows.length; i++)
      {
    var flag = tab.rows[i].cells[2].innerHTML; //flag得是固定的第三列
    switch (flag){
    case "1": tab.rows[i].style.color = "red";break;
    case "3": tab.rows[i].style.color = "blue";break;
    default: tab.rows[i].style.color = "black";
    }
      }
      //-->
      </SCRIPT>