如何找出点击哪个锚标记并在CanJs中获取id?

时间:2016-06-22 05:09:49

标签: javascript jquery ejs canjs

我在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中需要它。

4 个答案:

答案 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>