Javascript 单击时如何从链接中获取(记录的)id?

Javascript 单击时如何从链接中获取(记录的)id?,javascript,Javascript,我想在单击模式视图类时从href链接获取id(在本例中,我想返回6),但不知道怎么做 我尝试了$this.attr('href')(检查attr函数是否工作),但它返回了未定义的 任何建议,请提前谢谢 <span class="action_item modal-view"> <a href="/admin/sponsoreds/6/edit">Edit Sponsored</a> </span> 假设您使用jQuery: $("span.a

我想在单击
模式视图
类时从
href
链接获取id(在本例中,我想返回6),但不知道怎么做

我尝试了
$this.attr('href')
(检查
attr
函数是否工作),但它返回了
未定义的

任何建议,请提前谢谢

<span class="action_item modal-view">
  <a href="/admin/sponsoreds/6/edit">Edit Sponsored</a>
</span>

假设您使用jQuery:

$("span.action_item.modal-view").click(function(){
    let href = $(this).find('a').attr('href');
    console.log(href);
});

.prop()
也应该起作用

假设您使用jQuery:

$("span.action_item.modal-view").click(function(){
    let href = $(this).find('a').attr('href');
    console.log(href);
});
.prop()
也应该起作用

您的代码必须是
$(this)。查找('a')
$(这)
是单击元素的对象,
find('a')
将搜索单击元素内的
a
标记。要获取id,您可以执行类似以下操作:查找('a').attr('href').split('/')[3]。在这里,split将分隔您的
href
值,并生成一个数组,可以通过其索引访问该数组

$('.modal view')。在('click',函数(e)上{
e、 预防默认值();
console.log($(this.find('a').attr('href'));
console.log($(this.find('a').attr('href').split('/'))[3])
});

您的代码必须是
$(this)。查找('a')
$(这)
是单击元素的对象,
find('a')
将搜索单击元素内的
a
标记。要获取id,您可以执行类似以下操作:查找('a').attr('href').split('/')[3]
。在这里,split将分隔您的
href
值,并生成一个数组,可以通过其索引访问该数组

$('.modal view')。在('click',函数(e)上{
e、 预防默认值();
console.log($(this.find('a').attr('href'));
console.log($(this.find('a').attr('href').split('/'))[3])
});


您可以向
标记添加自定义属性,如
itemId
,然后根据需要检索它

您可以向
标记添加自定义属性,如
itemId
,然后根据需要检索它

通过jQuery我们可以做到

$(document).ready(function(){
    $("a").click(function(){
       alert("id of the link ="+this.id);
    });
});

通过jQuery,我们可以做到这一点

$(document).ready(function(){
    $("a").click(function(){
       alert("id of the link ="+this.id);
    });
});

我看到没有与您附加的HTML代码段相关联的
id
。您需要将它与
id
关联,以便从DOM访问它

<span class="action_item modal-view">
  <a id="anc-id" href="/admin/sponsoreds/6/edit">Edit Sponsored</a>
</span>
如果您的页面中有许多
a
标记,请使用类获取更具体的过滤方式-

<span id="parent-id" class="action_item modal-view">
  <a class="anc" id="anc-id" href="/admin/sponsoreds/6/edit">Edit Sponsored</a>
</span>

$(document).ready(function(){
   $("a.anc").attr("id");
});

检查此项以了解更多信息-

我发现没有与您附加的HTML代码段关联的
id
。您需要将它与
id
关联,以便从DOM访问它

<span class="action_item modal-view">
  <a id="anc-id" href="/admin/sponsoreds/6/edit">Edit Sponsored</a>
</span>
如果您的页面中有许多
a
标记,请使用类获取更具体的过滤方式-

<span id="parent-id" class="action_item modal-view">
  <a class="anc" id="anc-id" href="/admin/sponsoreds/6/edit">Edit Sponsored</a>
</span>

$(document).ready(function(){
   $("a.anc").attr("id");
});

查看此项了解更多信息-

您可以使用
href
上的正则表达式来查找ID。我假设它在下面的答案中始终是一个数字

函数OnTiggerClicked(事件){
//取消对href的导航,否则示例将失败。
event.preventDefault();
常数
//从单击的元素中获取href属性。
href=event.target.href,
//创建与“/”+(一个或多个数字)+“/”匹配的正则表达式。
正则表达式=/\/(\d+)\/,
//在href上执行正则表达式。
match=regex.exec(href);
//当match为null时,表示href不包含一个或多个
//夹在“/”中间的数字
如果(匹配===null){
log('href'中找不到有效ID');
}否则{
//正则表达式找到了一个数字,它位于第一个捕获组中
//因此它可以在匹配数组的第1项中找到。
log('href中的ID为:',regex.exec(href)[1]);
}
}
//使用模态视图类向每个元素添加单击侦听器。
常数
触发器=数组.from(document.querySelectorAll('.modal视图');
triggers.forEach(trigger=>trigger.addEventListener('click',onTriggerClicked))

您可以在
href
上使用正则表达式来查找ID。我假设它在下面的答案中始终是一个数字

函数OnTiggerClicked(事件){
//取消对href的导航,否则示例将失败。
event.preventDefault();
常数
//从单击的元素中获取href属性。
href=event.target.href,
//创建与“/”+(一个或多个数字)+“/”匹配的正则表达式。
正则表达式=/\/(\d+)\/,
//在href上执行正则表达式。
match=regex.exec(href);
//当match为null时,表示href不包含一个或多个
//夹在“/”中间的数字
如果(匹配===null){
log('href'中找不到有效ID');
}否则{
//正则表达式找到了一个数字,它位于第一个捕获组中
//因此它可以在匹配数组的第1项中找到。
log('href中的ID为:',regex.exec(href)[1]);
}
}
//使用模态视图类向每个元素添加单击侦听器。
常数
触发器=数组.from(document.querySelectorAll('.modal视图');
triggers.forEach(trigger=>trigger.addEventListener('click',onTriggerClicked))

在这种情况下,您可以使用
$(this)获取
href
的值。查找('a').attr('href')
,然后您需要拆分返回的uri以获取此数值(id),如


现在
id
包含所需的值。

在这种情况下,您可以使用
$(this)获取
href
的值。查找('a').attr('href')
,然后您需要拆分返回的uri以获得此数值(id),如


现在,
id
包含所需的值。

$这确实是一条路要走。如果使用得当,它应该会起作用。
$
让我觉得jquery也参与其中。这可能是由于一些原因,所以您是否可以共享导致此行为的整个代码?该链接是如何生成的?为什么不在span iteself中添加额外的
数据-*
,并提供所需信息?@Arvind它是由活动管理员自动生成的(