我的HTML:
<div id="menu"><ul><li>menu one<ul>
<li><a id="home">home</a></li>
<li><a id="contact">contact us</a></li>
</ul></li></ul></div>
Jquery:
$('#menu').click(function(){
alert($(this).find('a').attr('id'));
});
我想找到点击的价值。我的代码返回空。
答案 0 :(得分:2)
$('#menu a').click(function(){
alert($(this).html());
});
如果您想要id,请执行
$('#menu a').click(function(){
alert($(this).attr('id'));
});
答案 1 :(得分:0)
你的.find('a')会返回多个元素。如果要使用.each()显示每个值循环。否则做这样的事情:.find('a')[0] .attr('id')
循环代码:
xxx.find('a')。each(alert($(this).attr('id'));)
答案 2 :(得分:0)
您的代码适用于我,每次都返回“home”,因为它是a
的第一个后代div
。也许你正在寻找更像
$('#menu a').click(function(){
alert($(this).attr('id'));
});
答案 3 :(得分:0)
这不起作用的原因是因为$(this).find('a')
返回一个数组,因此您需要遍历#menu
中的所有锚点以获取它们的id
。您可以使用.each()
函数执行此操作:
$('#menu').click(function(){
$(this).find('a').each(function(){ alert(this.id) });
});
为您提供的HTML提供两个alert()
,每个都有不同的id
。然后,您可以将alert()
替换为您需要在每个锚点上执行的任何功能。