Jquery 跟踪父对象
各位程序员,下面是我正在研究的结构的一个片段。我有一个项目列表(列表),其中包含一组项目,每个项目都由包装器标识,包装器的id具有该项目唯一的值(id=“123”)。每个项目都有一组子元素,其中一个包含一些操作按钮Jquery 跟踪父对象,jquery,css-selectors,Jquery,Css Selectors,各位程序员,下面是我正在研究的结构的一个片段。我有一个项目列表(列表),其中包含一组项目,每个项目都由包装器标识,包装器的id具有该项目唯一的值(id=“123”)。每个项目都有一组子元素,其中一个包含一些操作按钮 <div id="the-list"> <div id="123" class="an-item"> <div></div> <div></div> &l
<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号
谢谢你不能使用同一个ID两次强> 为按钮指定单独的ID——在这种情况下,您可以使用ID来标识按钮或类。在这种情况下,您可以使用此代码获取父对象;假设
this
是按钮:$(this).nexist('.an item').attr('id')
演示:同一ID不能使用两次强> 为按钮指定单独的ID——在这种情况下,您可以使用ID来标识按钮或类。在这种情况下,您可以使用此代码获取父对象;假设
this
是按钮:$(this).nexist('.an item').attr('id')
演示:首先,示例代码中的“按钮”拼写错误。你应该解决这个问题。:)
其次,正如ThiefMaster所说,您必须为按钮提供唯一的ID。两个元素可以具有相同的名称
属性,但不能具有相同的id
属性。这适用于所有元素。如果不需要它们的唯一ID,您可能希望为它们提供类
那么,一旦你做到了。使用列表级别的click事件,可以获得单击按钮的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-”。这只是确保您没有单击其他元素而不是按钮
您可以在操作中看到这一点。首先,示例代码中的“按钮”拼写错误。你应该解决这个问题。:)
其次,正如ThiefMaster所说,您必须为按钮提供唯一的ID。两个元素可以具有相同的名称
属性,但不能具有相同的id
属性。这适用于所有元素。如果不需要它们的唯一ID,您可能希望为它们提供类
那么,一旦你做到了。使用列表级别的click事件,可以获得单击按钮的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-”。这只是确保您没有单击其他元素而不是按钮
你可以在行动中看到这一点。不错!我打字的时候真的把事情搞砸了。可能会在html6中引入;)至于多重身份证,嗯!没有借口。你的建议和德拉克尔的建议都很有效。我还考虑了一些其他的解决方案:a)从多个ID中清除html后,在我的click事件处理程序中,我可以使用
$(e.target).parents(“.list item”)
获取单击按钮的父级,因为只有一个元素(父级)具有.list类。我忘了parents()将选择器作为参数。或者B)…将s包装在一个div中,并使用一个自定义属性,比如“action on item id”和该项的id值(123)。可以这样检索:$(e.target).parent().attr(“对项目id的操作”)代码>。不确定哪种解决方案更好。关于自定义属性有什么想法吗?@djtee:如果要使用自定义属性,请使用(即
),然后可以使用jQuery的.data()
函数来检索它。这也是HTML5兼容的,将允许您的网站通过验证。hmmm,不知道他们被添加到HTML5。在课堂上应该更加注意;)谢谢你的链接。干杯不错!我打字的时候真的把事情搞砸了。可能会在html6中引入;)至于多重身份证,嗯!没有借口。你的建议和德拉克尔的建议都很有效。我还考虑了一些其他的解决方案:a)从多个ID中清除html后,在我的click事件处理程序中,我可以使用$(e.target).parents(“.list item”)
获取单击按钮的父级,因为只有一个元素(父级)具有.list类。我忘了parents()将选择器作为参数。或者B)…将s包装在一个div中,并使用一个自定义属性,比如“action on item id”和该项的id值(123)。可以这样检索:$(e.target).parent().attr(“对项目id的操作”)代码>。不确定哪种解决方案更好。关于自定义属性有什么想法吗?@djtee:如果要使用自定义属性,请使用(即
),然后可以使用jQuery的.data()
函数来检索它。这也是HTML5兼容的,将允许您的网站通过验证。hmmm,不知道他们被添加到HTML5。在课堂上应该更加注意;)谢谢你的链接。干杯