2012-10-17 33 views
1

什麼是寫這個jQuery選擇一個更好的方法:寫這個jQuery選擇更好的辦法

// this is called when .nextButton is invoked. 
$(this).parent('.question').children('.options').children('.options > li').children('.selected').parent('li').attr('id')); 

HTML:

<div class="question" id="question1"> 
     <p>What is your age:</p> 
     <ul class="options question1Options"> 
     <li id="q1-1"><div class="radio"></div>10-20.</li> 
     <li id="q1-2"><div class="radio"></div>21-30.</li> 
     <li id="q1-3"><div class="radio"></div>31-40.</li> 
     </ul> 
     <div class="nextButton"></div> 
    </div> 

當用戶點擊一個這些李時珍這將增加一個選擇的類(如單選按鈕,只有一個被選中)。我正在嘗試獲取所選廣播/列表的ID。謝謝。

回答

2

試試這個

$(this).closest('div.question').find('.radio.selected').closest('li').attr('id'); 

FIDDLE

+0

它的工作原理。謝謝。 – ialphan

+0

我接受這個,因爲它比@Sushil建議的更合理。謝謝。 – ialphan

+0

@ialphan ..不客氣:) –

1

精簡代碼:

$(this).siblings('.options').find('.selected').parent('li').attr('id'); 
+0

我不知道我是否看到錯誤的內容,但這不起作用 – NicoSantangelo

+0

爲什麼它應該如.options一樣具有父項。 – Anoop

+0

這是行不通的。謝謝。 – ialphan