获取在功能中单击元素的ID

时间:2010-06-01 19:42:00

标签: javascript jquery

我想获取我点击的元素的ID。 我将函数放在onclick元素中,如下所示:

<a id="myid" class="first active" onclick="markActiveLink();" href="#home">Home</a>

这是在函数中:

function markActiveLink() {   
    alert($(this).attr("id"));
}

这不起作用,因为它说没有定义。 它是否真的忘记了ID,我是否必须在onclick中输入它?

5 个答案:

答案 0 :(得分:14)

尝试:onclick="markActiveLink(this);"

function markActiveLink(el) {   
    alert($(el).attr("id"));
}

答案 1 :(得分:10)

为什么使用内联处理程序?转向不引人注目的js

$(document).ready(function(){
  $('#myid').bind('click', function(){
     alert($(this).attr('id'));
  });
});

答案 2 :(得分:9)

您必须将元素传递给函数。 JS本身并不比你聪明:)

HTML:

<a id="myid" class="first active" onclick="markActiveLink(this);" href="#home">Home</a>

JS:

function markActiveLink(e) {   
    alert(e.id);
}

答案 3 :(得分:0)

不要使用$(this),因为它会意外返回您添加绑定的元素。单击内部元素时,它也会返回外部元素。

<div id="outer">
    <div id="inner">

    </div>
</div>

您最好使用以下外观:

$("#outer").bind('click', function(e) {

    if(e.target.id === "inner")
    {
        alert("you clicked the inner element");
    }
    else
    {
        alert("you clicked the outer element");
    }
});

你可以在这里找到一个小提琴:http://jsfiddle.net/vqab7jdo/1/

答案 4 :(得分:0)

我尝试所有方法,花了将近2个小时,最后找到了我喜欢的最佳方式 试试吧:

< div onclick="div_Clicked(this.id)" id="some"/>

    function div_Clicked(itemName) { alert(itemName); }