我的页面上有多个具有相同类别的按钮。当我点击一个按钮时,我想得到最近的输入框的值(请记住,我的页面上有多个输入框和按钮,具有相同的类)。
我有:
$(".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>
当用户点击链接时,如何获取最近输入的值并使我的变量等于它????
答案 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)的先前值