0

jqueryを使用してliの親タイトルを取得しようとしています。以下は私のjQueryとhtmlです。サブ1、2、または3にカーソルを合わせると、「AboutUs」である親のタイトルを警告したい

JQUERY

$('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

機能する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
var whatami = $(this).closest('ul').closest('li').find('> a').attr('title');

デモ

于 2012-09-07T17:56:46.140 に答える
0

Adil が言うように、HTML の title 属性は に属しているため、各 li タグの子を意味している可能性があります。本当にホバーするつもりなら

  • あなたの質問が示唆する代わりに、次のことができます:

    $('li').hover(function(){
        var theTitle = $(this).find('a').attr('title');
        //do stuff
    });
    
  • 于 2012-09-07T17:50:58.470 に答える