2012-11-16 25 views
2

這聽起來很簡單,所以我不確定我卡在哪裏。 我有一個手動驗證的表單。在檢查單選按鈕後,我需要獲取該元素上方的標籤。 這是HTML。我無法更改標記,因爲此代碼是繼承,是更大進程的一部分。在jQuery之前獲取此特定元素

所以這是我的HTML:

<label>Do you market on? : </label> 
<li> 
    <label>Plenty of Fish:</label> 
    <span href="#" style="float: left; margin-right: 10px;"> 
     <input type="radio" class="required" name="data[SignupAnswer][100][answer]" value="yes" />Yes 
    </span> 
    <span href="#" style="float: left; margin-right: 10px;"> 
     <input type="radio" class="required" name="data[SignupAnswer][100][answer]" value="no" />No 
    </span> 
    <input type="hidden" name="data[SignupAnswer][100][signup_question_id]" value="100"> 
    <input type="hidden" name="data[SignupAnswer][100][class]" value="bool"> 
    <input type="hidden" name="data[SignupAnswer][100][required]" value="0"> 
    <input type="hidden" name="data[SignupAnswer][100][question]" value="Plenty of Fish"> 
</li> 

我找到的第一個電臺,然後我需要找到上面的標籤叫「魚的大量」。

我試着用.prev(),並與.closest(),都與( '標籤'),但都沒有返回一個實際的元素,而是這個對象:

[prevObject: jQuery.fn.jQuery.init[1], context: <input>, selector: ".next(li)"] 

也許有人可以向我解釋爲什麼我得到這個而不是一個元素?並給我一個想法如何獲得所需的元素? 謝謝!

+1

請問您可以附上jsFiddle嗎? –

+0

請添加您嘗試使用的jQuery代碼! –

+0

感謝球員,有人回答之前,我甚至設法jsFiddle :) – Yanipan

回答

3

closest選擇最接近第一父元素(由選擇指定),您可以選擇父li元素,然後找到label

$(this).closest('li').find('label') 
+0

簡單和工作 - 似乎我需要更好地使用控制檯,因爲我嘗試了方法aboe :)。謝謝! – Yanipan

1

下面是一些家庭時間。 .parents().children()

$('input[value=yes]').parents('li').children('label') 
1

另一種方法? $('input[type="radio"]:first').parent().siblings('label')

相關問題