Jquery的:
$("input[type='text']").blur(function () {
var id = $(this).parentsUntil('.hi').attr("data-id");
console.log(id);
});
HTML:
<tr data-id="1" class="hi">
<td>0</td>
<td><input name="ctl12" type="text" value="1333"></td>
<td><input name="ctl14" type="text" value="sdfghjkl"></td>
<td><input name="ctl16" type="text" value="qwsdfghj"></td>
<td><input name="ctl18" type="text" value="452145"></td>
</tr>
我想获取data-id
值,即等于1,但我的浏览器控制台显示未定义。
请帮忙!
答案 0 :(得分:3)
parentsUntil()
返回所有父项,直到它到达指定元素(.hi
)为止。它也不会返回该元素。如果您只想提取.hi
元素,请改用closest()
。
var id = $(this).closest('.hi').attr("data-id");
来自jQuery的文档:
parentsUntil
(https://api.jquery.com/parentsUntil/)描述:获取当前匹配元素集中每个元素的祖先,最多但不包括与选择器,DOM节点或jQuery对象匹配的元素。
closest
(https://api.jquery.com/closest/)对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。
答案 1 :(得分:2)
var id = $(this).parents('.hi').attr("data-id")
在这种情况下也应该起作用