2012-06-04 213 views
0

我知道我们可以使用.next()来查找给定元素的下一个元素。但是,我的情况迫使我使用SELECTOR。jQuery使用选择器选择下一个元素

我使用jQuery tools构建表格的tooltips,每个“td”有两个元素:链接和工具提示div。我的目标是在鼠标悬停在链接上时显示工具提示。根据HTML,它被放置在链接后面,所以我需要选择“下一个元素”。该HTML看起来像:

<tr> 
    <td><a href="#" id="td1">Title</a> 
    <div class="tooltip"> 
    <h1>Tooltip Title</h1> 
    <p>A detailed descritpion</p> 
    </div> 
    </td> 
</tr> 
<tr> 
    <td><a href="#" id="td2">Title</a> 
    <div class="tooltip"> 
    <h1>Tooltip Title</h1> 
    <p>A detailed descritpion</p> 
    </div> 
    </td> 
</tr> 
<!-- more rows --> 

不幸的是,我不能使用的.next()在这里,因为工具提示()函数只接受一个选择字符串作为参数:

$("#mytable img").tooltip({ 
    tip: '.tooltip', // <-- This must be a string, so no next() 
    position: 'center right', 
    offset: [0, 15], 
    delay: 0 
}); 

有什么办法来实现这个,还是我必须重构我的HTML?非常感谢。

+0

首先,有什么理由不显示HTML?其次,为什么不只是添加div class tooltip? –

+0

你能否使用一个返回.next()类名的函数? – Hacknightly

+0

是的,我使用div类工具提示,但这就是为什么我只想选择下一个。 – Yang

回答

0

你可以试试这个

$("#mytable img").tooltip({ 
    tip: '#mytable img your_html_element', // <-- This must be a string, so no next() 
    position: 'center right', 
    offset: [0, 15], 
    delay: 0 
}); 

这里your_html_element可能是你的股利或跨度或任何HTML元素的标签。你可以给出该标签的名称。这与你如何使用img标签相同。

+0

如果我有很多工具提示,都有一个类“工具提示”,这只会选择最后一个,但我不想使用不同的名称,因为我想每个循环都使用jQuery来应用工具提示。 – Yang

+0

使用类将选择多个元素。但是您的要求是选择与悬停图像相关的单个工具提示。 – Vins

+0

是的。如果我使用不同的名称,则必须编写许多tooltip()函数,但如果使用相同的名称,则只需选择下一个函数即可编写单个函数。 – Yang