选择最近的隐藏输入

jon*_*nie 6 jquery

我有以下div:

     <div class="vote">
     <input type="hidden" name="reply-id" value="83743">
     <a class="vote-up-0" title="Vote Up This Comment">up</a>
     <a class="vote-down-0" title="Vote Down This Comment">down</a>
     </div>


     <div class="vote">
     <input type="hidden" name="reply-id" class="reply-id" value="83745">
     <a class="vote-up-0" title="Vote Up This Comment">up</a>
     <a class="vote-down-0" title="Vote Down This Comment">down</a>
     </div>
Run Code Online (Sandbox Code Playgroud)

(是的,它是SO代码的blatent(ish)副本,我试图看看他们是如何做到的).因此,当用户点击投票或投票时,它应该找到隐藏的ID.

这似乎不起作用:

       $('a.vote-up-0').click(function() {

           var id = $(this).closest('.reply-id').val();
Run Code Online (Sandbox Code Playgroud)

lon*_*day 13

closest通过上升DOM树来查找匹配选择器的第一个元素.它不仅符合祖先元素.它决不会看到兄弟元素.

你想用siblings:

$(this).siblings('.reply-id').val();
Run Code Online (Sandbox Code Playgroud)


Dav*_*mas 5

如果您想稍微概括一下,要使用任何input元素名称,而不必知道父元素的名称,您可以使用:

var idOfHiddenInput = $(this).parent().find('input:hidden:first').attr('id');
Run Code Online (Sandbox Code Playgroud)

参考文献: