我想获取我点击的元素的ID。 我将函数放在onclick元素中,如下所示:
<a id="myid" class="first active" onclick="markActiveLink();" href="#home">Home</a>
这是在函数中:
function markActiveLink() {
alert($(this).attr("id"));
}
这不起作用,因为它说没有定义。 它是否真的忘记了ID,我是否必须在onclick中输入它?
答案 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); }