javascript - jQuery 一项一项地显示列表项的最佳方式

标签 javascript jquery events click show

我想通过单击按钮来逐项显示列表项。

这是我的代码:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
    $(document).ready(function() {
        $('ol > li').hide();
        $('button').click(function() {
            if ($('ol > li:first').is(':visible'))
                $('ol > li:visible:last').next().show();
            else
                $('ol > li:first').show();
        });
    });
</script>
<button type="button">Show</button>
<ol>
    <li>#1</li>
    <li>#2</li>
    <li>#3</li>
    <li>#4</li>
    <li>#5</li>
    <li>#6</li>
</ol>

它有效,但我很确定可以优化。最好的方法是什么?

提前致谢!

最佳答案

您可以将其显示为一行:

$('button').click(function() {
    $('ol > li:hidden:first').show();
});

工作示例 - http://jsfiddle.net/WV84H/

您可以通过缓存 li 列表来提高效率:

var $listItems = $('ol > li');
$('button').click(function() {
    $listItems.filter(':hidden:first').show();
});

工作示例 - http://jsfiddle.net/WV84H/1/

关于javascript - jQuery 一项一项地显示列表项的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16165001/

相关文章:

jquery 转动 "on"和 "off"事件处理程序

javascript - 限制 Bootstrap 上切换开关的数量

javascript - 为什么当我在最后一个 else 语句中更改 slaying 时,浏览器会崩溃

javascript - 变量上的 Jquery 选择器

jquery - 如何使用 Jquery 限制 future 日期

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - 使用javascript调整图像的边框宽度

javascript - Bootstrap 3 Popover : display on hover AND on click, 又名。固定弹出框

jquery - 尽管包含所有 js 和 css 源文件,但 Bootstrap 导航栏不会扩展

c# - 使用 Rhino Mocks 从模拟/ stub 中引发事件