jQuery .removeClass和addClass

时间:2016-10-14 05:54:06

标签: jquery

我无法删除或添加div内的课程,并在.wew可见时尝试删除课程.st-collapse,如果{{1}则添加课程.wew1 }}  隐藏

所以我的流程转到每个父div并找到它的div子

我的HTML



.st-collapse




这是我的剧本



    <div class="st">
    		<div class="st-heading wew">
    			<a href="#">Link 1</a>
    		</div>
    		<div class="st-collapse">
    			<ul>
    				<li><a href="#">Sub-Link 1</a></li>
    				<li><a href="#">Sub-Link 2</a></li>
    				<li><a href="#">Sub-Link 3</a></li>
    			</ul>
    		</div>
    	</div>
    <div class="st">
        		<div class="st-heading wew">
        			<a href="#">Link 1</a>
        		</div>
        		<div class="st-collapse">
        			<ul>
        				<li><a href="#">Sub-Link 1</a></li>
        				<li><a href="#">Sub-Link 2</a></li>
        				<li><a href="#">Sub-Link 3</a></li>
        			</ul>
        		</div>
        	</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

我不是100%肯定(我可能确实70%确定)你的问题是什么,因为你发表了一个声明而不是一个问题。所以,如果我离开或关闭或其他什么,请告诉我。

没有提供类,我认为它必须具有一定的重要性,因为我们正在处理visibility和两个类(可能具有涉及displayvisibility的截然相反的属性,和/或opacity。所以我创建了自己的课程.off.on

    .st-heading.on + .st-collapse {
      opacity: 1;
    }
    .st-heading.off + .st-collapse {
      opacity: 0;
    }

相关课程属于.st-header所以我添加了+相邻的兄弟选择器,以表明.st-collapse的可见性取决于.st-heading.off }或.on。我通过以下方式缩短了jQuery:

  1. ...删除.each()因为使用jQuery,您不需要在简单的情况下具体。 $('.st-heading')也会在页面上找到每个.st-heading ...

  2. ...将add/removeClass()替换为toggleClass()

  3. &#13;
    &#13;
    <!DOCTYPE html>
    <html>
    
    <head>
      <script data-require="jquery@2.2.4" data-semver="2.2.4" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
      <style>
        .st-heading.on + .st-collapse {
          opacity: 1;
        }
        .st-heading.off + .st-collapse {
          opacity: 0;
        }
      </style>
    </head>
    
    <body>
      <section class="st">
        <div class="st-heading off">
          <a href="#">Link 1</a>
        </div>
        <div class="st-collapse">
          <ul>
            <li>
              <a href="#">Sub-Link 1</a>
            </li>
            <li>
              <a href="#">Sub-Link 2</a>
            </li>
            <li>
              <a href="#">Sub-Link 3</a>
            </li>
          </ul>
        </div>
      </section>
      <section class="st">
        <div class="st-heading on">
          <a href="#">Link 1</a>
        </div>
        <div class="st-collapse">
          <ul>
            <li>
              <a href="#">Sub-Link 1</a>
            </li>
            <li>
              <a href="#">Sub-Link 2</a>
            </li>
            <li>
              <a href="#">Sub-Link 3</a>
            </li>
          </ul>
        </div>
      </section>
      <script>
        $(".st-heading").toggleClass('on off');
      </script>
    </body>
    
    </html>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

代码工作正常

  

检查Working Demo of Code

处的垃圾箱

我在点击活动中做到了!检查!

页面中

Maybe jQuery is missing