javascript - 将类添加到一个元素而不是所有元素,例如里面

标签 javascript jquery

所以,我在这里挣扎。我想进行一次单击,即使当我单击导航时,它会打开嵌套列表并将类添加到父列表。 该部分几乎可以工作,问题是它将该类添加到父列表中的所有元素。

       <ul>
        <li><div><p class="hidden">Test 1</p>
            <ul class="shown">
                <li>
                   <a href="#"><p>Inner 1</p></a>
                </li>
            </ul>
            </div>
        </li>
        <li><div><p  class="hidden">Test 2</p>
            <ul class="shown">
                <li>
                   <a href="#"><p>Inner 2</p></a>
                </li>
            </ul>
            </div>
        </li>
    </ul>
    <ul>

jque

    $(document).ready(function () {
$('.shown').hide();
$('.hidden').click(function () {
    var $answer = $(this).next('.shown');
    if ($answer.is(':hidden')) {
        $answer.show();
                     $('.hidden').addClass('color1');
    } else {
        $answer.hide();
        $('.hidden').removeClass('color1');
    }
});

    });

CSS

.color1{
   background:red;
}

jsfiddle

https://jsfiddle.net/Lc5n8k81/1/

最佳答案

这里在添加和删除 color1 类时将 $('.hidden') 更改为 $(this).. 因为 $('.hidden') 会将类添加到具有 .hidden 类的所有元素

Jsfiddle:https://jsfiddle.net/6moznpbr/

$(document).ready(function () {
    $('.shown').hide();
    $('.hidden').click(function () {
        var $answer = $(this).next('.shown');
        if ($answer.is(':hidden')) {
            $answer.show();
                         $(this).addClass('color1');
        } else {
            $answer.hide();
            $(this).removeClass('color1');
        }
    });
});

关于javascript - 将类添加到一个元素而不是所有元素,例如里面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37211923/

相关文章:

javascript - $ ('.photos ul li' ).length 在我注入(inject)照片之前输出 0 并在它们出现时输出 5 但当我删除它们时它仍然显示 5

javascript - 从动态 html 导出 pdf

javascript - 有没有办法重写所有相对 URL :s when inserting a HTML fragment in jQuery?

javascript - 登录模块适用于除 Chrome 之外的任何地方

jquery - jQ Mobile改变特定按钮的边框半径

jquery - 如何从在 SQL 中运行的查询创建临时表?

javascript - Nightwatch 为每次调用使用相同的元素选择器

javascript - 在取消订阅函数中异步处理资源

c# - 带有鼠标悬停的列标题的 gridView 定义

javascript - 如果父元素有子元素则添加 onclick 类