使用jQuery遍历DOM

时间:2018-09-03 23:00:45

标签: jquery dom-traversal jquery-traversing

给出以下html DOM:

<div>
    <div>
        <input data-id="somevalue">
    </div>
    <div>
        <a href="">edit</a>
    </div>
</div>

点击修改后,我想获取somevalue

A)我应该使用.parent().parent().find()还是有更合适的解决方案?
B)我如何获得data-select的值?我知道如何通过ID或类来获取它,但是不清楚用于数据属性的语法。

使用以下内容:

var id = $(this).parent().parent().find().attr('id');
console.log(id);

输出undefined,所以我不确定是否有遍历问题,或者是否没有正确的语法来获取数据属性值。

1 个答案:

答案 0 :(得分:0)

您可以使用

$(this).parent().prev().children().data('id')

$('a').click(function(e) {
  e.preventDefault();
  console.log(
    $(this).parent().prev().children().data('id')
  );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <div>
        <input data-id="somevalue">
    </div>
    <div>
        <a href="">edit</a>
    </div>
</div>

您的.find()(不带参数)不会给您任何结果,因为您没有向其传递任何选择器来查找。另外,属性不是id-属性是data-id,因此您应该使用data('id')而不是attr('id')