我在ejs中动态生成了锚标记。
<div style="position: absolute" class="template-box">
<!--<a href="#!template-detail" class="b2bdist">B2B Distributor</a>-->
<% for(var i = 0; i < this.length; i++) { %>
<a href="#!template-detail" id="<%= this[i][0].id%>"> <%= this[i][1].name %> </a> <br>
<% } %>
</div>
每个锚标记的 href 都相同。现在,当点击任何锚点时,它将出现在下面的代码中:
case "template-detail":
var template_id;
// here i want to get the the anchors id which is clicked
$("#template-detail").show();
break;
这里要注意我的href是相同的,在任何点击中我将转到canJs中的同一个控制器。当单击href时,它将进入routercontroller,routercontroller将在我的mainAppController中调用此函数。所以我的这个更改为现在的mainAppController。所以我不能使用 this.id 。
编辑:我在我的js中使用了以下代码,但没有触发。由于我正在使用的路由器控制器,它直接使用href。
$('a').click(function(){
console.log(this.id);
})
如何获取点击的锚标记的ID?
编辑: 对不起大家。我在CanJs中需要它。
答案 0 :(得分:2)
在所有<a>
中添加一个类属性,
示例HTML:
<a href="#" class="myclass" id="id1">Text one</a>
<a href="#" class="myclass" id="id2">Text two</a>
<a href="#" class="myclass" id="id3">Text three</a>
示例JS:
$('a.myclass').click(function(){
alert( $(this).attr('id') );
});
答案 1 :(得分:0)
你有和事件对象?如果是这样,您可以访问event.target.id
答案 2 :(得分:0)
拥有属性&#34; name&#34;在锚标记中,并基于该
单击处理程序1: 5
5: 8
7:
6: 10
答案 3 :(得分:0)
您可以使用Jquery执行此操作。解决方案是;
$(function(){
//document ready
$('a').click(function(){
alert($(this).attr('id'));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="firstone">First Link</a>
<a href="#" id="secondone">Second Link</a>
<a href="#" id="thirdone">Third Link</a>