jquery根据列值突出显示行

时间:2011-10-05 04:57:32

标签: jquery html css

您好我希望有人可以帮我调整这个JQuery代码,以便突出显示整个数据行,而不仅仅是包含值'N'的单元格。我试图将代码应用于表格行,但它仍然只是突出显示包含值“N”的单元格的背景颜色,其中我需要突出显示整个表格行。有人有什么建议吗?

    <html>
    <head> 
    <script type="text/javascript" 
    src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script> 
    <script type="text/javascript">  

    $(document).ready(function(){
                       $('#table_id tr.y_n td').each(function(){
                                                           if ($(this).text() == 'N') {
                                                               $(this).css('background-color','#f00');
                                                               }
                                                               }); 
                       });

    </script>

    </head>
    <body>
    <table id="table_id">
      <tr><th>Question</th><th>Y/N?</th></tr>  
      <tr><td>I am me.</td><td>Y</td></tr>  
      <tr class="y_n"><td>N</td><td>Y</td></tr>  
      <tr><td>I am not sure.</td><td class="y_n">Y</td></tr>  
      <tr><td>This is a table.</td><td class="y_n">Y</td></tr>
     </table>  

     </body> 
     </html> 

2 个答案:

答案 0 :(得分:4)

您只需在closest来电之前添加css来电:

if ($(this).text() == 'N') {
    $(this).closest('tr').css('background-color','#f00');
}

演示:http://jsfiddle.net/ambiguous/KSCyC/

closest函数遍历DOM以查找与选择器匹配的最近祖先。

您也可以使用parent

if ($(this).text() == 'N') {
    $(this).parent().css('background-color','#f00');
}

演示:http://jsfiddle.net/ambiguous/RdGEy/

答案 1 :(得分:1)

我相信parent()就是你想要的。更改以下行:

$(this).css('background-color','#f00');

$(this).parent().css('background-color','#f00')