<table>
    <tr>
        <td><img src="..." /></td>
    </tr>
</table>
如上那样简单的code $("td").click(function(){
$(this).parents("tr").addClass("highlight");
});
为何是取不到<tr>的,<tbody>也取不到,我对$(this).parents()都加了CSS后验证发现,只有<td>,<table>以及table外部的div,body等能加上CSS,就是说parents()取不到 tr和tbody这是by design吗?为什么取不到tr?那我有没有别的办法取到某一行<tr>的实例?

解决方案 »

  1.   

    说不定tr的样式已经加上了,只是你看不见,因为tr的样式很容易被td的样式遮住....
      

  2.   


    <style>
    .highlight{background:red}
    </style>
    <script src="js/jquery-1.3.2.js" type="text/javascript"> </script> 
    <script type="text/javascript">
    window.onload = function(){
      $("td").click(function(){
          $(this).parents().filter("tr").addClass("highlight");
      });
    }
    </script>
    <table>
        <tr>
            <td><img src="..." /></td>
            <td>xxxxx</td>
            <td>xxxxxxxx</td>
        </tr>
        <tr>
            <td>2222222</td>
            <td>2222222222</td>
            <td>2222</td>
        </tr>
        <tr>
            <td>3333333</td>
            <td>3333</td>
            <td>3</td>
        </tr>
    </table>
      

  3.   


        <table id="table1">
        <tr>
            <td><img  /></td>
        </tr>
    </table>   $(document).ready(function() {
                $("#table1 td").bind("click", function() {
                
                    alert($(this).parents("tr").html());
                });
            });
      

  4.   


     $("td").click(function(){
                $(this).parent("tr").addClass("highlight");
            });
     $("td").click(function(){
                $(this.parentNode).addClass("highlight");
            });