在父div上切换类名

时间:2015-07-25 05:45:01

标签: javascript jquery html css

我有3个菜单,每个菜单都有不同的Div。 如何在类名“wrap”上单击#box1时添加/删除类?

离) 点击menu1 text - > div class =“wrap menu1”,

点击menu2 text - > div class =“wrap menu2”

他们应该是toggleClass。 请帮忙〜

在这里演示 - http://jsfiddle.net/5zzzhmj8/1/

<div class="wrap">
    <div class = "menu m1"><a href="#box1"> menu 1</a></div> 
    <div class = "menu m2"><a href="#box2"> menu 2</a></div>
    <div class = "menu m3"><a href="#box3"> menu 3</a></div>
</div>

<div class ="content" id="box1">
box 1 content
</div>

<div class ="content" id="box2">
box 2 content
</div>

<div class ="content" id="box3">
box 3 content
</div>


$("a").click(function(){
    var myelement = $(this).attr("href")
    $(myelement).slideToggle("slow");  
    $(".content:visible").not(myelement).hide();

});


.wrap { overflow:hidden;} 
.menu {float:left; width:33.3%;font-size:2em; curser:pointer;}
.content{display: none; border:1px solid #000}
.on {color:#red}

.wrap.menu1 { background:red;}
.wrap.menu2 { background:blue;}
.wrap.menu3 { background:green;}

3 个答案:

答案 0 :(得分:2)

您可以使用锚点父元素的索引

&#13;
&#13;
$("a").click(function() {
  var myelement = $(this).attr("href")
  $(myelement).slideToggle("slow");
  $(".content:visible").not(myelement).hide();
  $('.wrap').removeClass('menu1 menu2 menu3').addClass('menu' + ($(this).parent().index() + 1));
});
&#13;
.wrap {
  overflow: hidden;
}
.menu {
  float: left;
  width: 33.3%;
  font-size: 2em;
  curser: pointer;
}
.content {
  display: none;
  border: 1px solid #000
}
.on {
  color: #red
}
.wrap.menu1 {
  background: red;
}
.wrap.menu2 {
  background: blue;
}
.wrap.menu3 {
  background: green;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="wrap">
    <div class="menu m1"><a href="#box1"> menu 1</a></div>
    <div class="menu m2"><a href="#box2"> menu 2</a></div>
    <div class="menu m3"><a href="#box3"> menu 3</a></div>
</div>
<div class="content" id="box1">box 1 content</div>
<div class="content" id="box2">box 2 content</div>
<div class="content" id="box3">box 3 content</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用$(this).parent().index()来获取点击的父元素的索引。

然后删除类并根据单击的元素添加一个类。

以下是经过修改的代码段。

$("a").click(function(){
    var myelement = $(this).attr("href")
    $(myelement).slideToggle("slow");  
    $(".content:visible").not(myelement).hide();
    var parent_idx = $(this).parent().index() + 1;
    $(".wrap").removeClass("menu1 menu2 menu3").addClass("menu" + parent_idx);
});

答案 2 :(得分:1)

请尝试此

$("a").click(function(){
    alert($(this).text())
    var myelement = $(this).attr("href");
    $(myelement).slideToggle("slow");  
    $(".content:visible").not(myelement).hide();
    $('.wrap').removeClass('menu1 menu2 menu3').addClass($(this).text());
});

DEMO