所有匹配属性上的addClass

时间:2014-04-22 05:11:26

标签: javascript jquery html

我有三个包含属性的容器。我想为父项上具有公共属性的所有匹配元素添加一个类。如果我单击侧边栏中的任何一个,则必须在所有匹配的属性上添加主内容区域或标题类。 (像单击一样触发所有三个属性)。

以下是代码:


<ul class='main-nav'>
    <li><a link-tab="lt-department" href=""> Departments </a></li>
</ul>    
<ul class='content tab-container'>
    <li><a link-tab="lt-department" href=""> Departments </a></li>
</ul>    
<ul class='sidebar'>
    <li><a link-tab="lt-department" href=""> Departments </a></li>
</ul>
var linkTab = $('li a[link-tab]'); 
$(linkTab).on('click', function(e){ 
     e.preventDefault(); 
     $(linkTab).parent('li').addClass('active'); 
});

请帮忙,我该怎样才能做到这一点。

2 个答案:

答案 0 :(得分:0)

如果你想要点击一下触发所有三个标签的功能,请尝试这样:

$( document ).ready(function() {
   var linkTab = $('li a[link-tab]'); 
   $(linkTab).on('click', function(e){ 
        e.preventDefault(); 
        var attrName   = $(this).attr("link-tab");
        var matchLinks = $("a[link-tab=" + attributeName + "]");

        matchLinks.parent("li").addClass("active");
   });
});

答案 1 :(得分:0)

尝试这样的事情:

$("a[link-tab]").on('click', function (e) {
    e.preventDefault();

    var attributeName = $(this).attr("link-tab");
    var matchedLinks = $("a[link-tab=" + attributeName + "]");

    matchedLinks.parent("li").addClass("active");
});

http://jsfiddle.net/37bGV/

我们的想法是在您的案例 lt-department 中查找具有相同 link-tab 值的所有锚点。然后,将 .active 类添加到 li 父级。