以下面的html为例:
<html>
<head>
<title></title>
</head>
<body>
<div>
<a class="delete-btn"></a>
</div>
<ul>
<li>
<div>
<div>
<a data-record-id="9">I need to grab this, from a click on 'delete-btn'</a>
</div>
</div>
</li>
</ul>
</body>
<html>
我需要向具有“delete-btn”类的项目添加一个click事件,并从数据记录ID为9的<a></a>
中获取data-record-id。这可以而且会改变,并假设我没有可能将data-record-id添加到原始删除按钮。
基本上,我有一个日期的生命体征清单,我想让用户能够删除所有日期的标志。日期标签的所有孩子都有相同的记录ID,我需要抓住它。
非常感谢任何和所有帮助。
答案 0 :(得分:2)
使用
$(this).parent().next().find('a')
我不知道你为什么会得到这个错误。
$('.delete-btn').click(function(){
var $a=$(this).parent().next().find('a');
alert($a.attr('data-record-id')); // gives 9
});
答案 1 :(得分:1)
使用它:
$('.delete-btn').click(function () {
var id = $(this).parent('div').next('ul').find('[data-record-id]').attr('data-record-id');
// use id
});
答案 2 :(得分:0)
试试这个,
$($('.delete-btn')[0]).parent().next().find('a').attr('data-record-id')
虽然您必须进行适当的更改, 比如稍后运行每个循环遍历所有元素或者你想做什么。但这很有效!
答案 3 :(得分:0)
您可以使用filter函数仅使用data-record-id=9
提取这些锚点:
$('a.delete-btn').on('click', function(e) {
var $recid9 = $('a').filter(function() {
return ($(this).data('record-id') == 9);
});
});