<div id="the-list">
<div id="123" class="an-item">
<div></div>
<div></div>
<div id="footer">
<div id="something"></div>
<div id="actions">
<botton id="action-email">email</button>
<botton id="action-edit">edit</button>
</div>
</div>
</div>
<div id="124" class="an-item">
<div></div>
<div></div>
<div id="footer">
<div id="something"></div>
<div id="actions">
<botton id="action-email">email</button>
<botton id="action-edit">edit</button>
</div>
</div>
</div>
</div>
我正在处理列表(列表)级别的冒泡鼠标点击,这似乎正在起作用。我的问题是能够识别哪个项目的按钮被点击了。因此,当单击其中一个电子邮件操作按钮时,我需要知道它是属于项目123还是项目124的那个。
有没有办法通过jQuery或更好的设计模式获取父ID号?
感谢
答案 0 :(得分:3)
您可能不会两次使用相同的ID!
为您的按钮提供单独的ID - 在这种情况下,您只需使用ID来标识按钮或类。在这种情况下,您可以使用此代码获取父级;假设this
是按钮:$(this).closest('.an-item').attr('id')
答案 1 :(得分:1)
首先,您在示例代码中拼错了“按钮”。你应该解决这个问题。 :)
其次,正如ThiefMaster所说,你必须给按钮提供唯一的ID。两个元素可以具有相同的name
属性,但不具有相同的id
属性。这适用于所有元素。如果没有必要拥有唯一的ID,你可能想给他们上课。
然后,一旦你做完了。使用列表级别的点击事件,您可以获得所点击按钮的ID,如下所示:
$(function() {
$('#the-list').click(function(evt) {
var elemid = $(evt.target).attr('id');
if (/action-/.test(elemid)) {
alert('this is an action! Element ID: ' + elemid);
}
});
});
这也测试通过对id进行正则表达式检查来确保按下按钮,以确保其中有“action-”。这只是确保您没有点击其他元素而不是按钮。
您可以在行动here中看到这一点。