7

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

我有:

    $(".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>

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

4

3 回答 3

13

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

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

这将获取前一个元素。

如果有可能在两者之间会有另一个元素,您可以使用.siblings()

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

这将使所有兄弟姐妹与班级相同。<div>deleteid

于 2010-08-28T17:38:59.027 回答
3
$(this).parent().find('.deleteid').attr('value');
于 2010-08-28T17:40:52.547 回答
0
$(this).parent().find('.deleteid').attr('value');

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

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

有时它会返回 .deleteid 的前一个值(不是 10)

于 2011-09-21T18:20:30.650 回答