如何扩展此javascript以在一个onclick中更改两个元素的类?

时间:2010-01-15 01:12:32

标签: javascript jquery css

Cletus昨天用这个非常甜蜜的代码帮助了我: what javascript object am I looking for? click a button-it stays bold till the next one is clicked?

这需要我的班级并改变班级。它很棒!我想扩展这个,所以它也会改变li中a的类。我该怎么做?

示例:

<ul>
 <li class="old_class"><a class="old_class" ...>
 <li class="old_class"><a class="old_class" ...>
 <li class="old_class"><a class="old_class" ...>
</ul>

So when I click the first link it would become:

<ul>
 <li class="new_class"><a class="new_class" ...>
 <li class="old_class"><a class="old_class" ...>
 <li class="old_class"><a class="old_class" ...>
</ul>

由于代码现在,li类更改,但不是a。

我正在使用的代码:

$(".old_class").click(function() {
  $(".new_class").removeClass("new_class");
  $(this).addClass("new");
});

谢谢!我正在使用Jquery ......

2 个答案:

答案 0 :(得分:2)

尝试:

$(".old_class").click(function() {
  $(this).removeClass("old_class");
  $(this).children("a").removeClass("old_class");
  $(this).addClass("new_class");
  $(this).children("a").addClass("new_class");
});

答案 1 :(得分:2)

使用ul定义class,说<ul class="nav">...

然后:

var navItems = $('.nav > li');
navItems.click (function () {
    navItems.children ('a').andSelf ()
        .removeClass ('new_class').addCass ('old_class');
    $(this).children ('a').andSelf ()
        .removeClass ('old_class').addClass ('new_class');
});

那就是说,你不需要孩子们a中的任何课程 - 你可以简单地在CSS中引用它们.new_class a