获得具有声明属性的最近父级?

时间:2013-01-18 21:10:07

标签: javascript jquery .net asp.net-mvc

我有以下代码:

<input pid="hidVoteKey" type="hidden" value="0" />
    <ul id="mainPostList" class="verticalList">
        @foreach (var postViewModel in Model.Posts)
        {
            <li><div class="voteCon">...</div></li>
        }
    </ul>

然后我有一个jquery,它使用类voteCon循环所有元素,然后尝试获取这样的父输入:

$(".voteCon").each(function () {
     InitVoteControl($(this), $(this).parent("input[pid='hidVoteKey']").val());
 });

问题是它找不到隐藏的字段?

在这种情况下,voteCon包含向上/向下按钮,这里绑定了一些javascript函数来进行ajax调用。在同一页面上会有多个列表,例如上面的列表,但是所有列表都会有不同的hidVoteKey。

2 个答案:

答案 0 :(得分:1)

找不到<input>,因为不是 <div class="voteCon">的父(或祖先)。它与<ul>的(兄弟)处于同一水平,<div>$(this).closest('ul').prev('input[pid="hidVoteKey"]').val() 的祖先。你可以这样做:

{{1}}

答案 1 :(得分:0)

只需使用然后不键入隐藏,您可以使用内联样式=“display:none;”