2010-12-23 86 views
0

我想在元素的父项中添加类。如何将类添加到选定元素的父项

DOM的结构是:

<ul class="companies"> 
<li> 
<a id=""></a> 
<a id=""></a> 
</li> 
<li> 
<a id=""></a> 
<a id=""></a> 
</li> 
</ul> 

所有 “一” 元素的ID是自动的。

我想添加类到所选“a”的父“li”。

这里是我的代码:

$(".companies li a:selected").parent("li").addClass('selected'); 
selectDealer($(".companies li a:selected").attr("id")); 

但是当我点击一个元素“a”,其母公司“礼”不会被选中。

有谁知道为什么?

感谢

+0

*选中*是什么意思,当你点击它时? – 2010-12-23 15:12:13

回答

2

认为什么你追求的是一个click处理这里:

$(".companies li a").click(function() { 
    $(this).parent("li").addClass('selected'); 
    selectDealer(this.id); 
}); 

:selectedselected元素,就像在<select><option>元素的例子。如果你想在某个事件上发生某些事情,如click,请使用类似上面的事件处理程序。在处理程序中,this将引用事件发生的元素。

以上是为了说明,更高效的版本将使用.delegate()这样的:

$(".companies").delegate("li a", "click", function() { 
    $(this).parent("li").addClass('selected'); 
    selectDealer(this.id); 
}); 
0

你肯定一:选择可以这样用吗?如果没有测试我会说这是错误

1

链路不能“:选择了”,这仅适用于选项元素。你的初始选择器因此失败。