当鼠标悬停在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 </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="">
</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>
</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>
</td>
</tr>
</tbody>
</table>
答案 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();
});
});