2011-08-20 55 views
0

我需要在懸停一系列鏈接時獲取下一個鏈接的href值。我有這個:在JQuery中獲取下一個元素的屬性

<div id="foo"> 
    <ul> 
     <li><a href="#tabs-1">Nunc tincidunt</a></li> 
     <li><a href="#tabs-2">Proin dolor</a></li> 
    <li><a href="#tabs-3">Aenean lacinia</a></li> 
</ul> 
</div> 

$("#foo a").hover(function() { 
    var href = $(this).next().attr('href'); 
    console.log(href); 
}); 

看起來不錯,但我在我的控制檯中'undefined'。

我是新來的JQuery,但不是JS。有任何想法嗎?

TIA

+0

你確定下一個元素是'了'標籤? – mowwwalker

+0

我來自YUI3,其中初始選擇器將返回一個節點列表。我想這是不同的。現在嘗試。 – user903277

+0

@user:'$(「#foo a」)'返回一個帶'.length'屬性的對象,以及由數字索引引用的匹配元素。但在分配'.hover()'處理程序後,該集合將被丟棄。在處理程序內部,「this」僅僅是對接收事件的單個元素的引用。可以緩存最初的選擇,例如在'foo_a'中,然後執行'var idx = foo_a.index(this); var href = foo_a.eq(++ idx).attr('href');',但大多數人喜歡遍歷DOM來到下一個元素。 – user113716

回答

0

怎麼樣

$('#foo a').hover(function() { 
     var href = $(this).closest('li').next().find('a').attr('href'); 
    });