这是fiddle,这是我的代码:
$(document).ready(function(){
$( "button.playtrailer" ).eq(2).after('<a href="" id="particular">....Show More</a>');//add a unique id to link
$( "button.playtrailer:gt(2)" ).addClass('hide');
});
$(document).on('click','a#particular',function(e){
e.preventDefault();
$(this).addClass('hide');
$('button.playtrailer').removeClass('hide');
});
.hide
{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>div1</p>
<div class="trailerdiv">
<button class="playtrailer">Trailer 1 </button>
<button class="playtrailer">Trailer 2 </button>
<button class="playtrailer">Trailer HD </button>
<button class="playtrailer">Trailer 5 </button>
<button class="playtrailer">Trailer 8 </button>
<button class="playtrailer">Video 3 </button>
</div>
<p>div2</p>
<div class="trailerdiv">
<button class="playtrailer">Trailer 1 </button>
<button class="playtrailer">Trailer 2 </button>
<button class="playtrailer">Trailer HD </button>
<button class="playtrailer">Trailer 5 </button>
<button class="playtrailer">Trailer 8 </button>
<button class="playtrailer">Video 3 </button>
</div>
<p>div3</p>
<div class="trailerdiv">
<button class="playtrailer">Trailer 1 </button>
<button class="playtrailer">Trailer 2 </button>
<button class="playtrailer">Trailer HD </button>
<button class="playtrailer">Trailer 5 </button>
<button class="playtrailer">Trailer 8 </button>
<button class="playtrailer">Video 3 </button>
</div>
我想要的是?
在此代码中,div中的所有按钮只有1个
Show More Link
。我想要为每个div不同地显示更多按钮,如下所示:
div1
Trailer 1 Trailer 2 Trailer HD ...显示更多
div2
Trailer 1 Trailer 2 Trailer HD ...显示更多
div3
Trailer 1 Trailer 2 Trailer HD ...显示更多
我想这样做而不更改类(在div和button中)。我应该在Jquery代码中进行哪些更改?
最佳答案
您可以在每个.trailerdiv
的3个链接后添加显示更多内容。同样,当单击显示更多链接时,请在其父级中查找隐藏的按钮并显示它们,而不是显示所有隐藏的按钮。
$(document).ready(function(){
$( ".trailerdiv" ).each(function(){
$(this).children(".playtrailer").eq(2).after('<a href="" id="particular">....Show More</a>');//add a unique id to link
$(this).children(".playtrailer:gt(2)" ).addClass('hide');
});
});
$(document).on('click','a#particular',function(e){
e.preventDefault();
$(this).addClass('hide');
$(this).parent().children('button.playtrailer').removeClass('hide');
});
.hide
{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>div1</p>
<div class="trailerdiv">
<button class="playtrailer">Trailer 1 </button>
<button class="playtrailer">Trailer 2 </button>
<button class="playtrailer">Trailer HD </button>
<button class="playtrailer">Trailer 5 </button>
<button class="playtrailer">Trailer 8 </button>
<button class="playtrailer">Video 3 </button>
</div>
<p>div2</p>
<div class="trailerdiv">
<button class="playtrailer">Trailer 1 </button>
<button class="playtrailer">Trailer 2 </button>
<button class="playtrailer">Trailer HD </button>
<button class="playtrailer">Trailer 5 </button>
<button class="playtrailer">Trailer 8 </button>
<button class="playtrailer">Video 3 </button>
</div>
<p>div3</p>
<div class="trailerdiv">
<button class="playtrailer">Trailer 1 </button>
<button class="playtrailer">Trailer 2 </button>
<button class="playtrailer">Trailer HD </button>
<button class="playtrailer">Trailer 5 </button>
<button class="playtrailer">Trailer 8 </button>
<button class="playtrailer">Video 3 </button>
</div>