javascript - 根据输入范围值显示/隐藏 DOM 元素

标签 javascript html dom input

我有一个 HTML DOM 元素,有 4 个子元素,如下所示:

<div id="container>
    <img class="hide>
    <img class="hide>
    <img class="hide>
    <img class="hide>
</div>

我有一个像这样的输入范围元素:

<input id="input_range type="range" min="1" max="4" value="1">

我想根据输入范围值显示/隐藏 img 元素。

例如:如果当前输入值为 3,我想通过切换 CSS 类来显示第 1 个、第 2 个和第 3 个 img,并隐藏第 4 个 img

如何使用普通 Javascript 做到这一点?

这是我当前的脚本:

var input_range = document.getElementById('input_range');
var scene = document.getElementById('container');

input_range.addEventListener('input', function(){
    hideElements(container, this.value);
})

function hideElements(parent_element, number_of_children){
    var children = parent_element.children;
    for (left = 0; left < number_of_children; ++left) {
        children[left].classList.remove('hide');
    }

}

此代码用于删除 CSS 隐藏类。但是如何根据输入的值把类放回去呢?

非常感谢。

最佳答案

你可以这样工作

var input_range = document.getElementById('input_range');
var scene = document.getElementById('container');

input_range.addEventListener('input', function(){
    hideElements(container, this.value);
})

function hideElements(parent_element, number_of_children){
    var children = parent_element.children;
    for (left = 0; left < children.length; ++left) {
        if (left < number_of_children) {
            children[left].classList.remove('hide');
        } else {
            children[left].classList.add('hide');
        }
    }

}

关于javascript - 根据输入范围值显示/隐藏 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43336979/

相关文章:

javascript - 将新对象附加到 JSON 文件中的数组

html - CSS使p标签不拉伸(stretch)div宽度

javascript - 将节点从主窗口移动到弹出窗口会导致 HierarchyRequestError

javascript - RSS 到 JSON、YQL

javascript - jQuery ajax 从另一台服务器加载 html

javascript - 从所选菜单中选择 ID 后,在文本框中显示价格

javascript - 如何通过从选项值中选择来乘以输入文本值

javascript - 旋转图标 Bootstrap 3

java - 变压器异常 : Unknown Error In XPath

javascript - 如何使用 Javascript (jQuery) 确定 'line-height'?