javascript - 根据输入 slider 递归显示/隐藏 li 元素

标签 javascript dom

我正在尝试根据输入 slider 显示/隐藏 x 个 li 元素。我尝试使用一种算法来实现此目的,该算法循环遍历 li 元素的数量,然后根据输入 slider 递归循环遍历差异的数量。

这是我目前拥有的:

/*  updateList
*   @param the event elemenet (input range)
*   @param range value, number of words to display
*/
function updateList(el, range) {
    var originalList = el.srcElement.nextSibling.nextElementSibling.getAttribute("data-value");
    var diff = originalList - range;
    var ul = el.srcElement.parentNode.children[1];

    // for amount of differences
    for (var li = originalList; li > -1; li--) {
        for (var y = 0; y < diff; y++) {
            ul.children[li].style.display = "none";
        }
    }
}

这是一个JSbin 。任何帮助或建议表示赞赏。

最佳答案

只需更改您的代码

// for amount of differences
for (var li = originalList; li > -1; li--) {
    for (var y = 0; y < diff; y++) {
        ul.children[li].style.display = "none";
    }
}

到此

// for amount of differences
for (var i=0; i<originalList; i++) {
    ul.children[i].style.display = (i<range) ? "":"none";
}

看看这个 PEN看看它的实际效果。

关于javascript - 根据输入 slider 递归显示/隐藏 li 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36673550/

相关文章:

javascript - 设置输入值变量显示对象对象消息

javascript - 奇怪的异步代码行为

javascript - 为什么这只能在页面加载时正常工作?

javascript - 通过 x、y 坐标获取 DOM 元素的位置

javascript - 通过单击 HTML 中的链接覆盖 JS 变量

javascript - 如何检查css规则是否存在

javascript - 如何修复 nginx 上的 http 414 Request-URI Too Large 错误?

javascript - IE 和 Firefox WIndows 上基于 UL 的损坏的 JQuery 菜单

javascript - 拖放 firefox ghost 图像位置

java - 遍历 NodeList 时删除 DOM 节点