给出以下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
,所以我不确定是否有遍历问题,或者是否没有正确的语法来获取数据属性值。
答案 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')
。