2009-11-01 95 views
0

我想找到一些子元素在UL父元素中。但是,我只需要找到第一个。下面是我使用jQuery找不到适用于:第一个

$('div.item a').click(function() { 
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected'); 
}); 

HTML:

<div class="item"><a id="main5830" href="http://www.mysite.com">Test</a></div> 
<ul class="subItems"> 
<li><a>test 1</a></li> 
<li><a>test 2</a></li> 
<li><a>test 3</a></li> 
</ul> 

我想测试1是获得类中选出的元素。

出于某种原因,这不是选择UL中的第一个a或UL元素中的任何一个。我在这里做错了什么?

回答

6

它确实有效,只需在点击事件处理程序的末尾使用return false;(或event.preventDefault();)即可阻止锚点的默认点击行为。

$('div.item a').click(function() { 
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected'); 
    return false; 
}); 

$('div.item a').click(function(e) { 
    e.preventDefault(); 
    $(this).parent().next('ul.subItems').find('a:first').addClass('selected'); 
}); 

这里有一个Working Demo显示它的工作

+0

是啊,现在用返回false;在我的点击功能结束时,我只是没有包含所有的代码。嗯,奇怪你的演示正在工作,但我的不是......我会再看一遍。 – 2009-11-01 19:51:49

+0

也许是你没有发布的代码有问题?如果该代码中存在错误,那么您发布的代码可能无法在某些浏览器中使用 – 2009-11-01 20:07:51

相关问题