2012-10-02 108 views
1

HTML如何簡化這個jQuery樹遍歷?

... 
<a id="delete1" href="http://www.example.com">TEST</a> 
<p>First</p> 
<p>Second</p> 
<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
</ul> 
<div id="hidden-qsd">123</div> 
... 

JS

var id = $('#delete1').nextUntil("div[id^='hidden']").next().last().attr('id'); 

我想獲得最接近的 「格」 的ID開始 「隱藏」 位於鏈接 「#DELETE1」 之後。
這個以前的代碼正在工作,但我認爲有一個更簡單的方法來做到這一點。

回答

2
$('#delete1').nextAll('[id^="hidden"]').attr('id') 

nextAll()足夠

例如jsbin:http://jsbin.com/usowej/3/edit

注意:如果你有一個以上的元素ID爲開始hidden只使用

$('#delete1').nextAll('[id^="hidden"]:first').attr('id') 

只獲得了第一次出現,見http://jsbin.com/usowej/4/edit

+0

是的,這是簡單的,謝謝。但是,「nextAll」不會在第一個結果後停止:它在刪除鏈接之後讀取整個DOM,以查找所有發生的事件。所以,我們可以找到更有效的解決方案。 – Spilarix

+1

好吧,如果你有多個元素的id是以隱藏開始的,只需使用'$('#delete1')。nextAll('[id^=「hidden」]:first')。attr('id')'using ':第一個'僞類 – fcalderan

+0

噢,是的,我忘了它......謝謝你! – Spilarix