Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 难以锁定兄弟姐妹_Jquery_Dom_Tree_Traversal - Fatal编程技术网

Jquery 难以锁定兄弟姐妹

Jquery 难以锁定兄弟姐妹,jquery,dom,tree,traversal,Jquery,Dom,Tree,Traversal,嗨,我有一个无序的列表: <ul class="prodDetails"> <li class="details1"><a href="">Link1</a></li> <li class="details2"><a href="">Link2</a></li> <li class="details3"><a href="">Link3</a></

嗨,我有一个无序的列表:

<ul class="prodDetails">
<li class="details1"><a href="">Link1</a></li>
<li class="details2"><a href="">Link2</a></li>
<li class="details3"><a href="">Link3</a></li>
</ul>

$("ul.prodDetails li.details1 a").addClass('prodDetailsOn').siblings().removeClass('prodDetailsOn');
$(“ul.prodDetails li.details1 a”).addClass('prodDetailsOn').sides().removeClass('prodDetailsOn');
我试图将类“prodDetailsOn”添加到单击的href中,同时将其从所有其他href中删除

不知怎的,我错过了目标。有什么想法吗


谢谢

这实际上是一种常见的模式。我要做的是首先移除切换,然后在触发事件的东西上设置它

$('.prodDetails a').click(function () {
    $('.prodDetails a.prodDetailsOn').removeClass('prodDetailsOn');
    $(this).addClass('prodDetailsOn');
});

您必须返回到
  • 元素才能获取其他li

    $("ul.prodDetails li.details1 a").addClass('prodDetailsOn').parent('li').siblings().removeClass('prodDetailsOn');
    

    这是小提琴

    我认为这是最好的答案,因为它可以纠正局部范围,而其他的则需要额外的查找。谢谢。这不太管用,但它帮助我解决了这个问题。我添加了find(“a”),它起作用了:$($ul.prodDetails li.details3A”).addClass('prodDetailsOn').parent('li').sides().find(“a”).removeClass('prodDetailsOn');
    $("ul li a").click(function() {
    $("ul li a").removeClass("propDetailsOn");
    $(this).addClass('propDetailsOn');
    })
    
    $(function(){
    $("a").click(function(e){
    e.preventDefault();
        $("a").not($(this)).removeClass("prodDetailsOn");
        $(this).addClass("prodDetailsOn");
    });
    });