如何将类添加到所选元素的父级

时间:2010-12-23 15:10:11

标签: jquery addclass

我想在元素的父级中添加类。

dom的结构是:

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

“a”元素的所有id都是自动的。

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

这是我的代码:

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

但是当我点击一个元素“a”时,它的父“li”将不会被选中。

有谁知道为什么?

由于

3 个答案:

答案 0 :(得分:2)

认为你所追求的是click处理程序:

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

:selected适用于selected元素,例如<option>中的<select>元素。如果您希望在事件上发生某些事情,例如click,请使用上面的事件处理程序。在处理程序内部,this将引用事件发生的元素。

以上是为了说明,更有效的版本将使用.delegate(),如下所示:

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

答案 1 :(得分:1)

链接不能为“:selected”,这仅适用于选项元素。因此,您的初始选择器失败。

答案 2 :(得分:0)

你确定a:选择可以这样使用吗?没有测试,我会说这是错误