Jquery DOM导航选择父attr

时间:2012-07-24 06:35:50

标签: jquery html5

有没有更好的方法:

partId = $(this).parent().parent().attr('data-partid') ;

我有一些行输出到页面上,每行包含输入字段。

当用户在输入字段上键入时,它会通过ajax将输入保存到数据库。

为了确保信息保存到正确的行,我需要沿着行ID发送,行id存储在div中:

<div id="buyingRow0" data-partid="43293">...

4 个答案:

答案 0 :(得分:1)

更简洁的方法是做一些事情:

partId = $(this).closest('div[data-partid]').data('partid');

但我不确定它是否更有效率。它甚至可能更慢。

答案 1 :(得分:0)

您可以使用closest()

var partId = $(this).closest('div').attr('data-partid') ;

答案 2 :(得分:0)

如果您的目标div有一个ID(并且您正确使用了ID属性),则表示它是页面上唯一的一个。

$('#buyingRow0').data('partid');

似乎在这里最有意义。

答案 3 :(得分:0)

$(this).parent().parent()正好说出了两个节点。如果您不想过于依赖DOM结构,那么使用.closest()作为其他建议确实很好。

如果data-partid是您添加到许多标签的通用属性,那么为您关注的行添加另一个布尔指示符也可能是好的,例如。 data-buying-row,因此您可以在该节点中添加data-partid的其他标记。

<div id="buyingRow0" data-partid="43293" data-buying-row>
  ...
</div>

在这种情况下,您将遍历该购买行:

$(this).closest('div[data-buying-row]').data('partid');