有没有更好的方法:
partId = $(this).parent().parent().attr('data-partid') ;
我有一些行输出到页面上,每行包含输入字段。
当用户在输入字段上键入时,它会通过ajax将输入保存到数据库。
为了确保信息保存到正确的行,我需要沿着行ID发送,行id存储在div中:
<div id="buyingRow0" data-partid="43293">...
答案 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');