如何隐藏包含跨度值超过/不超过范围 slider 当前值的所有部分?
HTML 范围 slider :
<span>Price from: </span><span id="price"></span><span> $</span>
<input type="range" min="0" max="1000" value="0" id="range"/>
HTML 部分:(示例)
<div id="main">
<section>
<div class="content">
<p>Current trade: <span id="data">41,99</span> $ on the market</p>
</div>
</section>
<section>
<div class="content">
<p>Current trade: <span id="data">362,37</span> $ on the market</p>
</div>
</section>
<section>
<div class="content">
<p>Current trade: <span id="data">789,64</span> $ on the market</p>
</div>
</section>
</div>
到目前为止我在 jQuery 中的尝试:
当前值显示在范围 slider 上方的范围内:(工作)
var slider = document.getElementById("range");
var rdata = document.getElementById("price");
rdata.innerHTML = slider.value;
slider.oninput = function() {
rdata.innerHTML = this.value;
}
隐藏跨度值超过当前范围 slider 值的所有部分:(不起作用)
$(document).ready(function(){
var slider = document.getElementById("range");
var rdata = slider.value;
$("#main").find('#data').each(function () {
return parseInt($(this).text()) < rdata;
}).parent().parent().hide();
)}
最佳答案
您可以在 main
id 元素中找到所有 section
并遍历 section 元素并将其隐藏
。 jQuery 找不到 section
标签,您可以将其定义为 div
和 section
类。您也可以找到 jsfiddle。
var slider = document.getElementById("range");
var rdata = document.getElementById("price");
rdata.innerHTML = slider.value;
slider.oninput = function() {
$("span#price").text(slider.value);
$("#mainDiv").find("div.content").each(function() {
if(parseInt($(this).find("span#data").text()) < slider.value) {
$(this).parent().hide();
}
else {
$(this).parent().show();
}
});
}
找到 jsfiddle Your fixed jsfiddle
关于javascript - jQuery 隐藏跨度值超过范围 slider 值的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54128769/