0

我正在尝试使用 jquery 获取 li 的父标题。下面是我的 jQuery 和 html。如果我将鼠标悬停在 Sub 1、2 或 3 上,我想提醒父母的标题是“关于我们”

查询

$('a').hover(function(e) {
var whatami = $(this).parent('a').attr('title');

if(somethingnew == "About Us") {
alert(whatami);
    } 
else {
    //Do nothing
}
});

HTML

<ul>
<li><a href="" title="Home">Home</a></li>
<li><a href="" title="About Us">About Us</a>
<ul>
<li><a href="" title="Sub 1">Sub 1</a></li>
<li><a href="" title="Sub 2">Sub 2</a></li>
<li><a href="" title="Sub 3">Sub 3</a></li>
</ul>
</li>
</ul>
4

4 回答 4

1

父级中不存在标题,而是存在于当前锚元素中,所以使用$(this).attr('title') 试试这个,

现场演示

$('a').hover(function(e) {
var whatami = $(this).attr('title');
//alert(whatami );
if(whatami  == "About Us") {
alert(whatami);
    } 
else {
    //Do nothing
}
});​
于 2012-09-07T17:44:08.933 回答
1

一种有效的方法是:

$('ul > li > ul > li a').hover(
    function(){
        var whatami = $(this).parents('li').eq(1).find('a[title]:first').attr('title');
        if (whatami == 'About Us') {
            alert(whatami);
        }
    },
    function(){
    });​

JS 小提琴演示

对以上内容稍作修改:

$('ul > li > ul > li a').hover(
    function(){
        var whatami = $(this).closest('ul').prev('a').attr('title');
        if (whatami == 'About Us') {
            alert(whatami);
        }
    },
    function(){
    });​

JS 小提琴演示

于 2012-09-07T17:46:21.223 回答
0

正如 Adil 所说,在您的 HTML 标题属性中,属于 ,所以也许您的意思是每个 li 标签的孩子。如果你真的想悬停在

  • 而不是你的问题所暗示的,那么你可以这样做:

    $('li').hover(function(){
        var theTitle = $(this).find('a').attr('title');
        //do stuff
    });
    
  • 于 2012-09-07T17:50:58.470 回答
    0
    var whatami = $(this).closest('ul').closest('li').find('> a').attr('title');
    

    演示

    于 2012-09-07T17:56:46.140 回答