这是我的HTML片段。我正在订阅锚点“查询”的“点击”事件。如何遍历以获得data-driverid
值?
<div class="DriverWrapper" data-driverid="108WW" style="background-color: Silver; padding: 4px 4px 4px 4px; page-break-before: always;">
<strong>Driver ID:</strong> 108WW
</div>
<table style="width: 100%;">
<tr>
<td style="vertical-align: top; width: 20%">
<strong>174794</strong>
<a href="#" class="inquireTripLink">inquire</a>
编辑:
我尝试了这个,它显示了null
$(".inquireTripLink").on("click", function (event)
{
event.preventDefault();
var driverId = $(this).closest('.DriverWrapper').data('driverid');
alert(driverId);
答案 0 :(得分:2)
您可以使用closest
方法。
$('.inquireTripLink').click(function(){
var id = $(this).closest('.DriverWrapper').data('driverid');
});
更新:div
元素不是所点击元素的父级,您已在div
标记后关闭strong
标记。您可以使用prev
方法:
$('.inquireTripLink').click(function(){
var id = $(this).closest('table').prev('div').data('driverid');
});
答案 1 :(得分:1)
试试这个:
$(".inquireTripLink").on("click", function (event) {
event.preventDefault();
var driverId = $(this).closest('table').prev('.DriverWrapper').data('driverid');
alert(driverId);
})
您的链接似乎位于不是div子女的表格中,而是兄弟姐妹。
<强> jsFiddle example 强>
答案 2 :(得分:0)
尝试$(this).closest("[data-driverid]").data("driverid")
答案 3 :(得分:0)
$(this).closest("table").prev(".DriverWrapper").data("driverid");
如果您更改了标记,它将会中断,但它适用于您发布的HTML。您可以考虑添加一个共同的父级,然后执行以下操作:
$(this).closest("COMMON PARENT").find(".DriverWrapper").data("driverid");