1

这是我的 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>&nbsp;108WW
</div>

<table style="width: 100%;">
    <tr>
        <td style="vertical-align: top; width: 20%">
            <strong>174794</strong>&nbsp;
            <a href="#" class="inquireTripLink">inquire</a>

编辑:

我试过这个,它显示警报null

$(".inquireTripLink").on("click", function (event) 
{
    event.preventDefault();

    var driverId = $(this).closest('.DriverWrapper').data('driverid');
    alert(driverId);
4

4 回答 4

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');
});

http://jsfiddle.net/J8cWT/

于 2013-04-07T02:39:17.343 回答
1

试试这个:

$(".inquireTripLink").on("click", function (event) {
    event.preventDefault();
    var driverId = $(this).closest('table').prev('.DriverWrapper').data('driverid');
    alert(driverId);
})

您的链接似乎在一个表中,该表不是 div 的子级,而是兄弟级。

jsFiddle 示例

于 2013-04-07T02:45:12.733 回答
0

尝试$(this).closest("[data-driverid]").data("driverid")

于 2013-04-07T02:37:23.070 回答
0
$(this).closest("table").prev(".DriverWrapper").data("driverid");

如果您更改标记,它将中断,但它适用于您发布的 html。您可以考虑添加一个共同的父级,然后改为执行以下操作:

$(this).closest("COMMON PARENT").find(".DriverWrapper").data("driverid");
于 2013-04-07T02:44:43.497 回答