2012-04-22 33 views
0
<li id="l"><a href="#"><img id="i" /></a></li> 

獲得列表項的ID我有圖片ID,我想列表項的ID,我知道一個辦法的jQuery從其子ID

$("#i").parent().parent().attr("id"); 

有沒有比這更好的辦法?

+0

更好的方法是不必猜測父母身份。 – 2012-04-22 12:03:22

回答

3

這是一個有點簡單:

$("#i").parents("li").attr("id") 
+1

'父母'將繼續冒泡以選擇與選擇器匹配的所有父母。最好使用「最接近」來選擇僅匹配選擇器的第一個父代。 – iMoses 2012-04-22 11:57:09

0

嘗試closestfind

$("#i").closest('li').attr("id") 
+3

你的代碼在兩個地方被打破。 '$(「#i」)。closest(「li」)。attr(「id」)' – iMoses 2012-04-22 11:58:03

+0

修正了他們最近的拼寫。我認爲他已經糾正了另一個錯字。 – Spudley 2012-04-22 19:51:45

0
$("#i").closest('li')[0].id; 

http://api.jquery.com/closest/

獲取的選擇相匹配,在當前元素開始,通過DOM前進了第一要素樹。

+0

更好地使用$(「#i」)。closest('li')。attr('id')。正如所寫的,代碼假定結果將包含至少一個項目 - 如果它沒有找到任何「li」,將會崩潰。 – McGarnagle 2012-04-22 18:17:08