在鼠标悬停表行上显示/隐藏Div

时间:2012-08-05 02:10:43

标签: jquery html-table

当鼠标悬停在table row上时,我想显示一个div。因此,悬停div.tools的{​​{1}}会在悬停时显示和隐藏。

这是我的桌子。

table row

我尝试了这个jQuery函数,但它没有用。

<table width="99%" cellspacing="0" cellpadding="2" class="main-box">
 <tbody><tr class="dataTableHeadingRow">
 <td class="dataTableHeadingContent">Categories / Products</td>
 <td class="dataTableHeadingContent" align="right">Action&nbsp;</td>
 </tr>

 <tr id="product_37">
   <td class="dataTableContent">
    <a href="#">Cotton Piqué Tennis Shirt</a>
    <div class="tools" style="display:none;">Tools Here</div>
   </td>
   <td class="dataTableContent" align="right">
    <img src="#/images/icon_arrow_right.gif" border="0" alt="">&nbsp;
   </td>
 </tr>

 <tr id="product_39">
   <td class="dataTableContent">
    <a href="#">Leather Plus Cotton Cut-Out Sling Back Sandal</a>
    <div class="tools" style="display:none;">Tools Here</div>
   </td>
   <td class="dataTableContent" align="right">
    <a href="#"><img src="#/images/icon_info.gif" border="0" alt="Info" title=" Info "></a>&nbsp;
   </td>
  </tr>

  <tr id="product_38">
    <td class="dataTableContent">
     <a href="#">Poly-Cotton 3/4 Sleeve Raglan Shirt</a>
    <div class="tools" style="display:none;">Tools Here</div>
    </td>
    <td class="dataTableContent" align="right">
     <a href="#">
     <img src="#/images/icon_info.gif" border="0" alt="Info" title=" Info "></a>&nbsp;
    </td>
  </tr>

  </tbody>
</table>

1 个答案:

答案 0 :(得分:3)

使用.find()代替.children()

你正在使用的.children() method只能找到直接的孩子,在你的tr元素的情况下将是tds。

.find() method看起来在所有后代之间,所以它会在tds里找到你的div。

您还遇到了一个语法错误,它会阻止您的代码正常工作:最后应该删除一个额外的结束});

此外,不是使用*选择所有元素,而只选择该表中的tr元素可能更有效:

jQuery(function() {
    jQuery('table.main-box tr[id^=product_]').hover(function() {
        jQuery(this).find("div.tools").show();
    }, function() {
        jQuery(this).find("div.tools").hide();
    });
});​
相关问题