jquery点击问题

时间:2010-09-09 03:53:06

标签: jquery

我的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'));
    });

我想找到点击的价值。我的代码返回空。

4 个答案:

答案 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'));
  });​

小提琴 http://jsfiddle.net/rsbPt/

答案 3 :(得分:0)

这不起作用的原因是因为$(this).find('a')返回一个数组,因此您需要遍历#menu中的所有锚点以获取它们的id。您可以使用.each()函数执行此操作:

$('#menu').click(function(){
  $(this).find('a').each(function(){ alert(this.id) });
});

为您提供的HTML提供两个alert(),每个都有不同的id。然后,您可以将alert()替换为您需要在每个锚点上执行的任何功能。