3

这听起来很简单,所以我不确定我在哪里卡住了。我有一个手动验证的表格。根据需要检查单选按钮后,我需要获取此元素上方的标签。这是HTML。我无法更改标记,因为此代码是继承,是更大过程的一部分。

所以这是我的 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>

我找到了第一个收音机,然后我需要在它上面找到名为“Plenty of Fish”的标签。

我尝试使用 .prev() 和 .closest(),两者都使用 ('label'),但两者都没有返回实际元素,而是返回这个对象:

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

也许有人可以向我解释为什么我得到这个而不是一个元素?并告诉我如何获得所需的元素?谢谢!

4

3 回答 3

4

closest选择第一个最近的父元素(由选择器指定),您可以选择父li元素然后找到label

$(this).closest('li').find('label')
于 2012-11-16T06:22:51.740 回答
1

这是一些家庭时间。.parents().children()

$('input[value=yes]').parents('li').children('label')
于 2012-11-16T06:26:05.590 回答
1

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

于 2012-11-16T06:39:26.593 回答