在div上尝试toggleClass失败

时间:2017-03-08 10:22:58

标签: javascript jquery

我试图从id元素中提取类toggleClass(),例如:

$('#create a').click(function(){
  $('#create div').toggleClass('active');
});

并且它并不想在分隔符上切换类active

这是按钮:

<a href="#create" id="create" data-toggle="tab">
  <i class="fa fa-plus" aria-hidden="true"></i>
</a>

以下是我尝试切换active的课程:

<div class="" id="create">
  <!-- Content Here -->
</div>

3 个答案:

答案 0 :(得分:0)

这里有两个问题。首先#create a将不匹配任何元素,因为a元素具有该id,而不是它的子元素。您可以使用a#create#create

其次,当create属性在页面中必须唯一时,您adiv上的id ID都已重复。您需要使用其他id值来标识div元素。

考虑到这些问题,请尝试以下方法:

$('#create').click(function(){
  $('#content').toggleClass('active');
});
.active { color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#create" id="create" data-toggle="tab">
  <i class="fa fa-plus" aria-hidden="true">+</i>
</a>
<div class="" id="content">
  Content here...
</div>

答案 1 :(得分:0)

首先,您不应该为多个元素使用相同的ID。

其次,选择器不会像你想象的那样工作:$('#create a')表示&#34;元素内的所有A元素,id = create&#34;。只需使用$('#create')即可。您可以使用$('a#create'),这意味着&#34;具有id = create&#34;的A元素,但这是必要的,因为id应始终是唯一的。

答案 2 :(得分:-1)

确保在DOM中提供唯一的ID。

然后你的选择器出错了。

他们应该

$('#create').click(function(){
  $('#creatediv').toggleClass('active'); // given new id to div
});    

没有必要提到div,因为你手头有id。