为什么我不能使用jquery访问父级数据?

时间:2015-05-01 19:06:28

标签: javascript jquery html

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,但我的浏览器控制台显示未定义。

请帮忙!

2 个答案:

答案 0 :(得分:3)

parentsUntil()返回所有父项,直到它到达指定元素(.hi)为止。它也不会返回该元素。如果您只想提取.hi元素,请改用closest()

var id = $(this).closest('.hi').attr("data-id");

来自jQuery的文档:

parentsUntilhttps://api.jquery.com/parentsUntil/

  

描述:获取当前匹配元素集中每个元素的祖先,最多但不包括与选择器,DOM节点或jQuery对象匹配的元素。

closesthttps://api.jquery.com/closest/

  

对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素

答案 1 :(得分:2)

 var id = $(this).parents('.hi').attr("data-id") 

在这种情况下也应该起作用