2012-06-28 71 views
2

我想抓取類最接近的鏈接a.tariff-link並將其發送給一個方法,但看起來像closest()找不到它,因爲它總是傳遞一個未定義的元素。jquery最接近()不起作用

$(".ui-icon-triangle-1-e").click(function() { 

    GetRuleData($(this).closest("a.tariff-link")); 

}); 

HTML的一個例子是這樣的:

<h3 class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" role="tab" aria-expanded="false" tabindex="-1"> 
<span class="ui-icon ui-icon-triangle-1-e"></span> 
<a id="41965" class="tariff-link" href="#" tabindex="-1"> 
</h3> 
+4

閱讀的文檔'.closest()'。它得到最親密的**父母**,而不是兄弟姐妹或表弟。 –

+0

當前元素最近的開始,並且通過DOM進展。 –

回答

10

你需要.siblings()而不是.closest()。後者檢查當前元素及其祖先,但您的a是當前元素的一個兄弟,而不是祖先。

如果它始終是當前元素之後的元素,那麼也可以使用.next()

+0

非常感謝,工作! – Victor

+0

'next()'在這種情況下實際上更合適,儘管差異在技術上可以忽略不計。 '兄弟姐妹()'檢查所有的兄弟姐妹,而不僅僅是跟隨的元素,它也不會停止,當它發現第一個元素。 –