如何更改最近输入的值?

时间:2017-01-08 21:40:15

标签: javascript jquery dom onclick

我有一个包含多行的表,所有结构都相同。我创建了一个可以点击的DIV。如果用户单击DIV,则同一行中输入的值应更改。使用下面的代码,所有输入字段都会以相同的值更改。如何调整代码以使javascript仅更改相应的输入?

<table>
<tr>
<td>
<input class="inp-hid">
</td>
<td>
<div class="acts-like-btn"></div>
</td>
</tr>
<tr>
<td>
<input class="inp-hid">
</td>
<td>
<div class="acts-like-btn"></div>
</td>
</tr>
<tr>
<td>
<input class="inp-hid">
</td>
<td>
<div class="acts-like-btn"></div>
</td>
</tr>
</table>



<script>
$(this).parents().find('.inp-hid').val("yes");
</script>

1 个答案:

答案 0 :(得分:2)

在您的按钮上添加一个点击事件,将其抓取到closest('tr')行,然后在行中找到输入find('input')来设置值。

$('.acts-like-btn').on('click', function () {
  $(this)
    .closest('tr')
    .find('input').val('yes');
});

在您的代码中

$(this).parents().find('.inp-hid').val("yes");

这是抓取window对象,并从那里找到所有.inp-hid元素,而不是行。