选择三个具有属性值的div

时间:2015-02-01 22:48:04

标签: javascript jquery html css

我试图根据属性值隐藏/显示三个div。

基本上, .foo1,.foo2和foo3应该被隐藏,直到属性值为[ccaction=new],当属性值用JS更改为[ccaction=edit]时,foo1,foo2和foo3应该是可见的

我试图用不同的方式隐藏/显示这些

[ccaction=new] .foo1 .foo2 .foo3 {

display: none !important; 
}

[ccaction=edit] .foo1 .foo2 .foo3 {

display: block !important; 
}

但我认为我在某处犯了错误。我不确定我在哪里犯错误。

有人可以帮忙找错吗?

提前非常感谢你!

2 个答案:

答案 0 :(得分:0)

也许它可以帮到你:

div[ccaction="new"] {
display: none !important; 
}

div[ccaction="edit"] {
display: block !important; 
}

答案 1 :(得分:0)

您可能打算这样做:



$('button').click(function(e) {
  e.preventDefault();
  var $div = $('#myDiv'),
    current = $div.attr('ccaction'),
    new_str = current == 'new' ? 'edit' : 'new';

  $div.attr('ccaction', new_str);
});

div[ccaction="new"] .foo1,
div[ccaction="new"] .foo2,
div[ccaction="new"] .foo3 {
  display: none !important;
}
div[ccaction="edit"] .foo1,
div[ccaction="edit"] .foo2,
div[ccaction="edit"] .foo3 {
  display: block !important;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<button>Click to toggle new/edit ccaction attr</button>
<div ccaction="new" id="myDiv">
  <div class="foo1">Foo1</div>
  <div class="foo2">Foo2</div>
  <div class="foo3">Foo3</div>
</div>
&#13;
&#13;
&#13;