在具有特定类的表中获取上述tr

时间:2014-04-26 17:59:16

标签: jquery html

我要做的是:我有一张看起来像这样的桌子

<table>
    <tr class="warning">
        <input type="hidden" name="ID[]" value="1" />
        <td>warning</td>
    </tr>
    <tr>
        <td>
            <a href="#" class="editField">edit</a>
        </td>
    </tr>
    <tr>
        <td>
            <a href="#" class="editField">edit</a>
        </td>
    </tr>
    <tr>
        <td>
            <a href="#" class="editField">edit</a>
        </td>
    </tr>
    <tr class="warning">
        <input type="hidden" name="ID[]" value="2" />
        <td>warning</td>
    </tr>
    <tr>
        <td>
            <a href="#" class="editField">edit</a>
        </td>
    </tr>
</table>

对于每个警告tr,都有一个带有特定ID的隐藏输入。 我试过了:

$.each($('a.editField'), function(i,obj){
   console.log($(obj).parent().parent().prevAll('tr.warning').find('[name="ID[]"]').val());
});

但它正在记录表中的第一个warning tr,因此日志将是ID 1的四倍, 它应该是三次ID 1和一次ID 2。

JsFiddle:http://jsfiddle.net/dLp7b/

1 个答案:

答案 0 :(得分:1)

你刚刚失踪:first。这会给你第一个最亲近的兄弟。

$.each($('a.editField'), function(i,obj){
    console.log($(obj).parent().parent().prevAll('tr.warning:first').find('[name="ID[]"]').val());
});

Demo