我有一个包含多行的表,所有结构都相同。我创建了一个可以点击的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>
答案 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
元素,而不是行。
见