我在下面的代码中简化了我的问题,但在下面的示例中,我无法按照我需要的方式使.prev
工作。它只抓取第一个值,而不是与<button>
所在位置对应的值。
任何帮助?
<h1>-</h1>
<div>
<input type='hidden' value="value_1">
<button class="delete">1</button>
</div>
<div>
<input type='hidden' value="value_2">
<button class="delete">2</button>
</div>
<div>
<input type='hidden' value="value_3">
<button class="delete">3</button>
</div>
我的JS:
var value = $('.delete').prev('input[type=hidden]').attr('value');
$('.delete').click(function() {
$('h1').text(value);
});
答案 0 :(得分:3)
您需要获取点击的元素的上一个元素。在Build Service Accounts
事件处理程序中,click
引用所点击的this
元素,因此使用.delete
。
$(this).prev('input[type=hidden]')
当您在$('.delete').click(function() {
var value = $(this).prev('input[type=hidden]').attr('value');
$('h1').text(value);
});
事件处理程序之外使用$('.delete').prev('input[type=hidden]').attr('value')
时,您获得了第一个匹配元素的click
属性。