gpt4 book ai didi

javascript - 一页显示多种输入类型范围的值

转载 作者:行者123 更新时间:2023-11-28 04:02:11 24 4
gpt4 key购买 nike

我正在尝试显示页面上每个 slider 的值,这是迄今为止我的代码:

var i = 0;
var st = 'slider';
var ot = 'output';
var s = '';
var o = '';

for (var x = 0; x < 3; x++) {
i++;
s = st+i;
o = ot+i;

var s = document.getElementById("range"+i);
var o = document.getElementById("limit"+i);
o.innerHTML = s.value;

s.oninput = function() {
o.innerHTML = this.value;
}

}
<div id="slidecontainer">
<input type="range" min="2" max="50" value="20" class="slider" id="range1" >
<label>You chose <span id="limit1"></span></label>
</div>

<div id="slidecontainer">
<input type="range" min="2" max="50" value="20" class="slider" id="range2" >
<label>You chose <span id="limit2"></span></label>
</div>

<div id="slidecontainer">
<input type="range" min="2" max="50" value="20" class="slider" id="range3" >
<label>You chose <span id="limit3"></span></label>
</div>

当我移动任何 slider 时,它仅更改最后一个值,我想分别显示每个 slider 的值。我在 JavaScript 代码中使用循环,因为我有 20 多个 slider ,并且我不想为每个 slider 编写一个函数,除非这是唯一的方法。有什么建议么?

最佳答案

您遇到的问题与变量范围有关。只有一个名为o的变量,循环的每次迭代都会更改该变量。所以当oninput 函数的计算结果 o 等于您设置的最后一个值。 o 的当前值未“保存”在函数定义中。

参见https://www.w3schools.com/js/js_scope.asp了解更多信息。

请参阅下面的解决方案,在这里我找到了每次调用函数时的限制

function updateLabel() {
var limit = this.parentElement.getElementsByClassName("limit")[0];
limit.innerHTML = this.value;
}

var slideContainers = document.getElementsByClassName("slidecontainer");

for (var i = 0; i < slideContainers.length; i++) {
var slider = slideContainers[i].getElementsByClassName("slider")[0];
updateLabel.call(slider);
slider.oninput = updateLabel;
}
<div class="slidecontainer">
<input type="range" min="2" max="50" value="20" class="slider">
<label>You chose <span class="limit"></span></label>
</div>

<div class="slidecontainer">
<input type="range" min="2" max="50" value="20" class="slider">
<label>You chose <span class="limit"></span></label>
</div>

<div class="slidecontainer">
<input type="range" min="2" max="50" value="20" class="slider">
<label>You chose <span class="limit"></span></label>
</div>

关于javascript - 一页显示多种输入类型范围的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47006027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com