3 回答

TA貢獻1810條經(jīng)驗 獲得超4個贊
這個怎么樣:
var elements = document.getElementsByClassName("slidecontainer");
elements.forEach(function(el){
var slider = el.getElementById("myRange");
var output = el.getElementById("demo");
output.innerHTML = slider.value;
slider.oninput = function() {
output.innerHTML = this.value;
}
})
現(xiàn)在,對于您添加的每個滑塊,它都會起作用,這意味著您只需要添加具有相應類的 html
</head>
<body>
<h1>Custom Range Slider</h1>
<p>Drag the slider to display the current value.</p>
<div class="slidecontainer">
<input type="range" min="1" max="100" value="50" class="slider" id="myRange">
<p>Value: <span id="demo"></span></p>
</div>
<div class="slidecontainer">
<input type="range" min="1" max="100" value="50" class="slider" id="myRange">
<p>Value: <span id="demo"></span></p>
</div>
將產(chǎn)生兩個沒有額外聲明的工作滑塊。
所以我正在做的是尋找每個具有滑塊容器類的元素并遍歷每個元素。這樣對于具有該結(jié)構(gòu)的每個滑塊,您都會有一個滑塊。無需添加額外的 javascript 來引用每個滑塊

TA貢獻1951條經(jīng)驗 獲得超3個贊
將滑塊和輸出標簽作為參數(shù)來運行
function setSlider(slider, output){
var slider = document.getElementById(slider);
var output = document.getElementById(output);
output.innerHTML = slider.value;
slider.oninput = function() {
output.innerHTML = this.value;
}
}
setSlider("myRange1", "demo1")
setSlider("myRange2", "demo2")
<body>
<h1>Custom Range Slider</h1>
<p>Drag the slider to display the current value.</p>
<div class="slidecontainer">
<input type="range" min="1" max="100" value="50" class="slider" id="myRange1">
<p>Value: <span id="demo1"></span></p>
</div>
<div class="slidecontainer">
<input type="range" min="1" max="100" value="50" class="slider" id="myRange2">
<p>Value: <span id="demo2"></span></p>
</div>
</body>

TA貢獻1834條經(jīng)驗 獲得超8個贊
您可以使用類名并定位容器元素,如下所示:
const containers = document.querySelectorAll(".slidecontainer");
for(let container of containers) {
const slider = container.querySelector(".slider");
const output = container.querySelector(".value");
output.innerHTML = slider.value;
slider.oninput = function() {
output.innerHTML = this.value;
}
}
<body>
<h1>Custom Range Slider</h1>
<p>Drag the slider to display the current value.</p>
<div class="slidecontainer">
<input type="range" min="1" max="100" value="50" class="slider">
<p>Value: <span class="value"></span></p>
</div>
<div class="slidecontainer">
<input type="range" min="1" max="100" value="50" class="slider">
<p>Value: <span class="value"></span></p>
</div>
<div class="slidecontainer">
<input type="range" min="1" max="100" value="50" class="slider">
<p>Value: <span class="value"></span></p>
</div>
添加回答
舉報