2010-11-13 78 views
1

我有這樣的結構:jQuery的 - 下一個(元素)不工作

<ul> 
    <li> 
    <a> link .. </a> 
    <span> text </span> 
    <ul> 
     ... 
    </ul> 
    </li> 
    ... 

我加入的<span><a>元素都點擊事件,我嘗試使用$(this).next("ul");

嵌套 <ul>選擇

它適用於跨度,但不適用於鏈接。我在這裏做錯了什麼?

回答

2

在錨的點擊處理程序將無法看到UL如果你使用next抓住它,因爲next只會選擇第二天兄弟。你可以試試:

$("a").nextAll("ul").hide(); 

或:

$("a").parent().find("ul").hide(); 

或:

$("a").siblings("ul").hide(); 
+0

nextAll()爲我工作,謝謝。但是如果next()接受參數,如果它返回下一個元素,那很奇怪。 – Alex 2010-11-13 03:11:03

+0

@Alex - 它接受的參數意味着'返回*非常接下來*元素*只有*它匹配傳遞的選擇器。這是非常不直觀的,出於同樣的原因,這個問題在各種化身中出現了數百次。 – karim79 2010-11-13 03:13:07

+0

啊我現在看到了。謝謝:) – Alex 2010-11-13 03:16:27