使用jquery找到匹配时添加类名,每个?

lau*_*kok 0 arrays each jquery addclass removeclass

我想在找到匹配的关键字时为元素添加一个类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>
Run Code Online (Sandbox Code Playgroud)

因此,如果关键字是"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");

});
Run Code Online (Sandbox Code Playgroud)

我设法从所有元素中删除"当前"类,但无法添加"当前"类.

我错过了什么想法?

use*_*654 6

您不需要自己遍历它们来完成此任务:

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

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

var request = "gallery";
$(".menu-header li a").removeClass("current").filter("[href*=" + reqeust + "]").addClass("current");
Run Code Online (Sandbox Code Playgroud)