我有html这样的代码
<div class="main">
<div class="button hide">1</div>
<div class="button hide">2</div>
<div class="button hide">3</div>
<div class="button hide">4</div>
<div class="button hide">5</div>
<div class="button hide">6</div>
<div class="button hide">7</div>
..........
</div>
<a href="#" class="input">ZZZ</a>
我想在点击display:block
之后将样式ZZZ
添加到前五个按钮(在这种情况下为1,2,3,4,5)再次如果我点击按钮ZZZ我想先隐藏5个按钮,将样式display:block
添加到6,7,8,9,10
我可以想到这里,但我们知道风格适用于所有元素。是否可以仅为前五个按钮添加它?
$(".input").click(function(){
$(.button).css("display","block");
});
谢谢:)
答案 0 :(得分:5)
您可以使用:lt
伪选择器来选择第一个n
元素。
选择匹配集内索引小于索引的所有元素。
$('.input').on('click', function() {
$('.button:lt(5)').removeClass('hide');
return false;
});
&#13;
.hide {
display: none;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div class="main">
<div class="button hide">1</div>
<div class="button hide">2</div>
<div class="button hide">3</div>
<div class="button hide">4</div>
<div class="button hide">5</div>
<div class="button hide">6</div>
<div class="button hide">7</div>
..........
</div>
<a href="#" class="input">ZZZ</a>
&#13;
修改强>
要在5
索引之后选择元素,可以使用:gt
伪选择器。
选择匹配集中索引大于索引的所有元素。
$('.input').on('click', function() {
$('.button:gt(4)').removeClass('hide');
return false;
});
&#13;
.hide {
display: none;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div class="main">
<div class="button hide">1</div>
<div class="button hide">2</div>
<div class="button hide">3</div>
<div class="button hide">4</div>
<div class="button hide">5</div>
<div class="button hide">6</div>
<div class="button hide">7</div>
..........
</div>
<a href="#" class="input">ZZZ</a>
&#13;
答案 1 :(得分:0)
$(".input").click(function(){
$('.main').find('.notblock').css("display","none");
});
html
<div class="main">
<div class="button hide">1</div>
<div class="button hide">2</div>
<div class="button hide">3</div>
<div class="button hide">4</div>
<div class="button hide">5</div>
<div class="button hide notblock">6</div>
<div class="button hide notblock">7</div>
..........
</div>
<a href="#" class="input">ZZZ</a>
将类添加到您想要不在选择范围内的div中,然后使用该类选择它们。在这个示例中,我将notblock添加到6和7 div,然后使用该类选择它们以向他们添加display none
UPDATE
$(".input").click(function () {
$('.main').find('.notblock').toggle();
$('.main').find('.hide').toggle();
});
html
<div class="main">
<div class="button hide">1</div>
<div class="button hide">2</div>
<div class="button hide">3</div>
<div class="button hide">4</div>
<div class="button hide">5</div>
<div class="button notblock">6</div>
<div class="button notblock">7</div>
<div class="button notblock">8</div>
<div class="button notblock">9</div>
<div class="button notblock">10</div>..........</div>
<a href="#" class="input">ZZZ</a>
UPDATE
根据@Tushar建议将selector
从$('.main').find('.notblock').toggle();
$('.main').find('.hide').toggle();
缩短为$('.main').find('.notblock, .hide').toggle();
答案 2 :(得分:0)
jQuery .show()和.hide()函数已经在元素中添加了display:block和display:none。
如果你需要在前5和其他之间进行一些切换:
$('.input').on('click', function() {
if($('.button:eq(0)').is(":visible")){
$('.button:gt(4)').show();
$('.button:lt(5)').hide();
}else{
$('.button:lt(5)').show();
$('.button:gt(4)').hide();
}
return false;
});