如何从td更改tr的bgcolor

时间:2014-04-03 11:28:38

标签: php html background html-table

我有一个重复的表行。

 <table id="ads-content"><tr class="<?php
        if ($i & 1) {
            echo'alternate';
        } else {
            echo '';
        }
   ?>"> 

   <td align="left"><?php echo $i; ?></td>
      <td align="left">
              //some code to retrieve and print db values. at here $pcount is initialized. I can't initialize $pcount before tr.
             </td> 
                <td><?php
                    if ($pcount != 1) {
                        echo "<img  src='" . plugin_url('images/pencil2.png') . "'>";
                    } else {

                        echo "<img  src='" . plugin_url('images/tick.jpg') . "'>";
        }
                    ?> </td>
                       </tr></table> 

问题:

我需要更改<tr>的bg颜色,其中包含图像&#34; tick.jpg&#34;。

我尝试了很多方法,但没有任何方法填满整行。

我该怎么做?

答案

我修好了。我将分享我以下修复的代码,以便它可以帮助其他人:

     <table id="ads-content"><tr class="<?php
            if ($i & 1) {
                echo'alternate';
            } else {
                echo '';
            }
       ?>"> 
            <td align="left"><?php echo $i; ?></td>
              <td align="left">
                      //some code to retrieve and print db values. at here $pcount is initialized.i can't initialize $pcount before tr.
                     </td> 
                        <td><?php
                            if ($pcount != 1) {
                                echo "<img  src='" . plugin_url('images/pencil2.png') . "'>";
                            } else {
                <div class="to_class" style="display=none;"><?php echo "new"; ?></div>
                                echo "<img  src='" . plugin_url('images/tick.jpg') . "'>";
                }
                            ?> </td>
                               </tr></table>  
 <script type="text/javascript">
 $(function(){
   $('#ads-content tr').each(function() {
       var obtained= $(this).find("td").eq(2).find(".to_class").text();
       $(this).addClass(obtained);
       });
      });
   </script>

注意:eq()从零开始, 然后我为课程提供了背景颜色&#34; new&#34;在css部分。

3 个答案:

答案 0 :(得分:0)

恕我直言,如果你在实际打印TR之前无法初始化$ pcount,你一定要考虑改变它。你做错了什么。 也许这会有所帮助:

//HERE: some code to retrieve
$output = '';
if ($pcount != 1) {
    $output .= '<tr style="background:#FFF;">';
} else {
    $output .= '<tr style="background:#AAA;">';
}
$output .= '<td align="left">'; 
$output .= ''; // HERE: print db values.
$output .= '</td>';
$output .= '</tr>';
echo $output;

否则,如果你根本不能帮助它,你可以使用jQuery,例如:

$('tr').each(function() {
    if( $(this).find('img[src="images/tick.jpg"]').length > 0 ) {
        $(this).css('background','#FFF'); 
    } else {
        $(this).css('background','#AAA');
    }
});

答案 1 :(得分:0)

因为您同时添加图像。我想,在jQuery上添加一个不同的类到tick.jpg图像跟踪它。

<img src="tick.jpg" class="tick_img">

$('.tick_img').parents('tr').css('background', 'red');

答案 2 :(得分:-1)

$i放在<tr>id="row-id-<?php echo $i; ?>"

然后在if($pcount != 1)内包含类似的内容:

<style type="text/css" scoped> /* added for future proofing */
    #row-id-<?php echo $i; ?>{
        background-color:red;
    }
</style>