简体   繁体   English

显示/隐藏html中的列表项

[英]show/hide list items in html

I have list of several items, i need to show them less first and show more after button click.. I have achieved that by some code.. But the list items are in "display:list-item" i need them in "display: inline/inline-block" 我有几个项目的列表,我需要少显示它们,而在单击按钮后显示更多。.我已经通过一些代码实现了。但是这些列表项目在“ display:list-item”中,我需要在“ display :inline / inline-block“

 $(function() { $('span').click(function() { $('#datalist li:hidden').slice(0, 2).show(); if ($('#datalist li').length == $('#datalist li:visible').length) { $('span ').hide(); } }); }); 
 ul li:nth-child(n+3) { display: none; } ul li { border: 1px solid #aaa; } span { cursor: pointer; color: #f00; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <ul id="datalist"> <li>dataset1</li> <li>dataset1</li> <li>dataset2</li> <li>dataset2</li> <li>dataset3</li> <li>dataset3</li> <li>dataset4</li> <li>dataset4</li> <li>dataset5</li> <li>dataset5</li> </ul> <span>readmore</span> 

Its just a matter of changing your code from: 只需更改以下代码即可:

$('#datalist li:hidden').slice(0, 2).show();

to

$('#datalist li:hidden').slice(0, 2).css('display','inline-block');

No need for extra classes. 无需额外的课程。 You can use classes if you want to add in CSS animations. 如果要添加CSS动画,则可以使用类。

 $(function() { $('span').click(function() { $('#datalist li:hidden').slice(0, 2).css('display','inline-block'); if ($('#datalist li').length == $('#datalist li:visible').length) { $('span ').hide(); } }); }); 
 ul li:nth-child(n+3) { display: none; } ul li { border: 1px solid #aaa; display:inline-block; } span { cursor: pointer; color: #f00; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <ul id="datalist"> <li>dataset1</li> <li>dataset1</li> <li>dataset2</li> <li>dataset2</li> <li>dataset3</li> <li>dataset3</li> <li>dataset4</li> <li>dataset4</li> <li>dataset5</li> <li>dataset5</li> </ul> <span>readmore</span> 

Instead of using jquery's .hide() and .show() , use .addClass() and .removeClass() with a class that will toggle "display:none". 与其使用jquery的.show() .hide().show().addClass().addClass().removeClass()与将切换“ display:none”的类一起使用。 That way you will revert back to display:list-item and not block / inline-block : 这样,您将恢复为display:list-item而不是block / inline-block

 $(function() { $('span').click(function() { $('#datalist li:hidden').slice(0, 2).removeClass('displayNone'); if ($('#datalist li').length == $('#datalist li:visible').length) { $('span ').addClass('displayNone'); } }); }); 
 .displayNone { display: none; } ul li { border: 1px solid #aaa; } span { cursor: pointer; color: #f00; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <ul id="datalist"> <li>dataset1</li> <li>dataset1</li> <li class="displayNone">dataset2</li> <li class="displayNone">dataset2</li> <li class="displayNone">dataset3</li> <li class="displayNone">dataset3</li> <li class="displayNone">dataset4</li> <li class="displayNone">dataset4</li> <li class="displayNone">dataset5</li> <li class="displayNone">dataset5</li> </ul> <span>readmore</span> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM