如何获得最近输入Jquery的值

时间:2010-08-28 17:37:16

标签: jquery closest

我的页面上有多个具有相同类别的按钮。当我点击一个按钮时,我想得到最近的输入框的值(请记住,我的页面上有多个输入框和按钮,具有相同的类)。

我有:

    $(".deletepostbutton").click(function() {

            var deleteid = $(this).closest('.deleteid').attr('value');

  });


<div class="microblogpostactions">
     <input type="text"  name="deleteid" class="deleteid" value="'.$row['id'].'" />
     <a href="Javascript:void[0]" class="deletepostbutton">Delete</a>
     </div>

<div class="microblogpostactions">
     <input type="text"  name="deleteid" class="deleteid" value="'.$row['id'].'" />
     <a href="Javascript:void[0]" class="deletepostbutton">Delete</a>
     </div>

当用户点击链接时,如何获取最近输入的值并使我的变量等于它????

3 个答案:

答案 0 :(得分:13)

如果您确定它们彼此相邻,请使用.prev()。 (这应该是最快的。)

 var deleteid = $(this).prev().attr('value');

这会获得前一个元素。

如果中间可能存在其他元素,您可以使用.siblings()

 var deleteid = $(this).siblings('.deleteid').attr('value');

这将使用<div>类在同一deleteid 中获取所有兄弟

答案 1 :(得分:3)

$(this).parent().find('.deleteid').attr('value');

答案 2 :(得分:0)

$(this).parent().find('.deleteid').attr('value');

它可能(并且确实)导致性能问题。例如:

$(this).parent().find('.deleteid').val(10);
alert($(this).parent().find('.deleteid').val());

有时会返回.delete id(不是10)的先前值