Javascript jQuery在第页上检索多个.attr()

Javascript jQuery在第页上检索多个.attr(),javascript,jquery,attr,Javascript,Jquery,Attr,新手-我知道我错过了一些简单的东西 目标是使用数据orgid属性从此a href检索orgid <a class="claim" href="http://www.url.com" id="orgAct-claim" data-orgid="111">Claim Your Listing</a> <a class="claim" href="http://www.url.com" id="orgAct-claim" data-orgid="222">Claim

新手-我知道我错过了一些简单的东西

目标是使用数据orgid属性从此a href检索orgid

<a class="claim" href="http://www.url.com" id="orgAct-claim" data-orgid="111">Claim Your Listing</a>
<a class="claim" href="http://www.url.com" id="orgAct-claim" data-orgid="222">Claim Your Listing</a>
<a class="claim" href="http://www.url.com" id="orgAct-claim" data-orgid="333">Claim Your Listing</a>
在这里拉小提琴:

=====

更进一步,通过将所有实例包装到另一个名为listings的id中,我可以获得每个实例至少触发的属性。但是,每个.click事件始终返回第一个orgid 111

<div id="listings">
    <a class="claim" href="http://www.url.com" id="orgAct-claim" data-orgid="111">Claim Your Listing</a>
    <a class="claim" href="http://www.url.com" id="orgAct-claim" data-orgid="222">Claim Your Listing</a>
    <a class="claim" href="http://www.url.com" id="orgAct-claim" data-orgid="333">Claim Your Listing</a>
</div>
在这里拉小提琴:

=====


如何将var设置为我分别单击的特定实例:111、222或333?

首先,id应该是唯一的。所以不要有相同的ID。如果需要,可以使用类。但是,在这种情况下,您可以使用在回调中传递的this,如下所示:

$( "#orgAct-claim" ).click(function() {
    var orgid = $(this).attr('data-orgid');
    alert(orgid);
});

你的ID应该是唯一的,所以我删除了它们。此外,您还可以在click函数中使用$this返回被单击的元素。由于您可能也不想转到锚标记中指定的href,因此我使用event.preventDefault来阻止这种情况发生

$function{ $.claim.clickfunctionevent{ //从onClick属性获取orig并设置orgid。 var-orgid=$this.attr'data-orgid'; alertorgid; 违约事件; }; };
根据W3C规范,具有相同ID的多个元素不是有效的html

当CSS选择器只有一个ID选择器时,jQuery使用原生document.getElementById方法,该方法只返回具有该ID的第一个元素

如果必须按重复ID进行选择,请使用属性选择器:

$('a[id="orgAct-claim"]');
请看一看

因此,在您的情况下,正如Amit Joki所建议的,您可以使用:

$('a[id="orgAct-claim"]').click(function() {
    var orgid = $(this).attr('data-orgid');
    alert(orgid);
});

谢谢Amit Joki。非常简单的$这可以走很长的路!我会尽快接受。谢谢Kishor提供的关于具有相同id的多个元素的额外信息。我们希望代码尽可能符合要求。谢谢Robert!我喜欢您在解决方案中删除重复ID的方式。
$('a[id="orgAct-claim"]').click(function() {
    var orgid = $(this).attr('data-orgid');
    alert(orgid);
});