我如何获得与jquery匹配类的第一个父级?

时间:2011-10-20 15:01:34

标签: javascript jquery

我正在尝试获取与类检查匹配的第一个父元素,但我遇到了问题。我的页面可能如下所示:

<input id="hidden1" type="hidden" value="5" class="includeds">
<h3>header</h3>
<ul class="groups">
    <li><input id="li1" type="checkbox" value="1" onclick="value()"></li>
    <li><input id="li2" type="checkbox" value="2" onclick="value()"></li>
    <li><input id="li3" type="checkbox" value="3" onclick="value()"></li>
</ul>
<input id="hidden2" type="hidden" value="3" class="includeds">
<h3>header2</h3>
<ul class="groups">
    <li><input id="li4" type="checkbox" value="4" onclick="value()"></li>
    <li><input id="li5" type="checkbox" value="5" onclick="value()"></li>
    <li><input id="li6" type="checkbox" value="6" onclick="value()"></li>
</ul>

因此,如果我点击复选框li1,我想从其上方的隐藏字段中检索值"5"

如果我点击li5,我想从其上方的第一个隐藏字段获取"2"的值等等。

我正在尝试这个(在value()函数内),但是它不起作用,我一直收到一个未定义的错误。

var thevalue = $(this).closest(".includeds").value);

var thevalue = $(this).closest(".includeds").attr("value").toString());

我不明白为什么他们不工作,有什么想法?谢谢你的帮助。

2 个答案:

答案 0 :(得分:6)

我使用了你的标记:

var value = $(this).closest('ul').prevAll('.includeds:first').val();

实例:http://jsfiddle.net/xfE8B/

答案 1 :(得分:-2)

试试这个:

var thevalue = $(this).closest("a .includeds")).val();