我试图得到一个表单元素值使用最接近。下面是一些示例代码。
<table>
<tr>
<td>Hour <input type="input" value="12" name="data[hour]" class="hour" /></td>
<td>Minute <input type="input" value="12" name="data[minute]" class="minute" /></td>
<td><a href="#" class="add-data">Add Row</a></td>
</tr>
</table>
看到我不能序列化的形式,因为它是一个大的形式的一部分,所以我需要抓住每个输入最接近添加行链接,因为你将能够添加多行。
我试过了
var hour = $(this).closest('.hour').val();
var hour = $(this).closest('input', '.hour').val();
var hour = $(this).closest('input[name="data[hour]]").val();
有什么想法我可以得到的形式价值观?
先谢谢你了
3条答案
按热度按时间yx2lnoni1#
假设每个tr只有一个
.hour
元素,这就可以做到:closest
将:获取匹配选择器的第一个祖先元素,从当前元素开始,向上遍历DOM树。
因此,您需要上到tr,并从那里找到
.hour
后代。am46iovg2#
关于Karim 79的回答:
.closest()向上移动DOM树,直到找到匹配项。它不适用于同一级别的元素--比如在您的例子中(所有元素都有一个td作为父元素)。
http://api.jquery.com/closest/
要在您的情况下使用closest(),您必须使用(这里有点矫枉过正):
uplii1fm3#