0

当找到匹配的关键字时,我想向元素添加一个类href

html,

<ul class="menu-header">
<li><a href="http://localhost/website/#/home/" class="button-header current">HOME</a></li>
<li><a href="http://localhost/website/#/gallery/" class="button-header">GALLERY</a></li>
<li><a href="http://localhost/website/#/people/" class="button-header">PEOPLE</a></li>
<li><a href="http://localhost/website/#/contact/" class="button-header">Contact</a></li>
</ul>

因此,如果关键字是“gallery”,则应将“current”添加到该元素中,并且必须删除其他元素中的“current”类。

jQuery,

var request = "gallery";

// Add the class to the menu.
$(".menu-header li").each(function(){

    var object = $(this); // which is <li>
    var siblings = object.siblings(); // other <li>s

    // Clean all siblings' style.
    siblings.find("a").removeClass('current');
    var array_link = $("a",this).attr("href").split('/');

    if ($.inArray(request, array_link) == 1) $("a.button-header",object).addClass("current");

});

我设法从所有元素中删除了“当前”类,但无法添加“当前”类。

有什么我错过的想法吗?

4

1 回答 1

6

您无需自己遍历它们即可完成此操作:

$(".menu-header li a").removeClass("current").filter("[href*=gallery]").addClass("current");

li a从任何拥有它的类中删除当前类,然后将其添加到li a具有匹配的 href 的类中gallery。这里又是一个变量:

var request = "gallery";
$(".menu-header li a").removeClass("current").filter("[href*=" + reqeust + "]").addClass("current");
于 2012-09-21T21:45:20.690 回答