我遇到了问题,但不明白出了什么问题。
function fun1() {
var rng = $('#r1').val(); //rng - это Input
$('#one').text(rng);
jQuery.each($('.content'), function(i, val) {
if ($(this).text() < rng) {
$(this).show();
} else {
$(this).hide();
}
});
}
&#13;
.content {
display: none;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="range" min="0" max="100000" id="r1" oninput="fun1()" />
<p id="one"></p>
<div class="content">2345</div>
<div class="content">85552</div>
<div class="content">2345</div>
<div class="content">25345</div>
<div class="content">123</div>
<div class="content">1</div>
<div class="content">852524</div>
<div class="content">22</div>
&#13;
程序应将内容中的数字与输入范围内的范围进行比较。但是在输出中,即使是那些大于范围的div也取消隐藏。 我不知道出了什么问题。
答案 0 :(得分:2)
您可以使用解决方案
function fun1() {
var rng = parseInt($('#r1').val()); //rng - это Input
$('#one').text(rng);
jQuery.each($('.content'),function(i,val){
if(parseInt($(this).text()) < rng){
$(this).show();
} else{
$(this).hide();
}
});
}
&#13;
.content{display:none;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="range" min="0" max ="100000" id="r1" oninput="fun1()" />
<p id="one"></p>
<div class ="content">2345</div>
<div class ="content">85552</div>
<div class ="content">2345</div>
<div class ="content">25345</div>
<div class ="content">123</div>
<div class ="content">1</div>
<div class ="content">852524</div>
<div class ="content">22</div>
&#13;
只有代码更改位于if statement
$(this).text()
将返回字符串&amp;所以每当你试图检索valie时都要使用parseInt。
代码已更改
var rng = parseInt($('#r1').val());
if(parseInt($(this).text()) < rng){
希望这会对你有所帮助。
答案 1 :(得分:1)
此处的问题是您尚未解析divs
内容和range
值,因此它被视为string
而不是number
,所以它是string
比较,这就是为什么你没有得到理想的结果。
使用parseInt()
将其解析为代码中的number
:
function fun1() {
var rng= parseInt($('#r1').val());
$('#one').text(rng);
jQuery.each($('.content'),function(i,val){
if(parseInt($(this).text()) < rng){
$(this).show();
} else{
$(this).hide();
}
});
}
<强>演示:强>
function fun1() {
var rng= parseInt($('#r1').val());
$('#one').text(rng);
jQuery.each($('.content'),function(i,val){
if(parseInt($(this).text()) < rng){
$(this).show();
} else{
$(this).hide();
}
});
}
.content{display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="range" min="0" max ="100000" id="r1" oninput="fun1()" />
<p id="one"></p>
<div class ="content">2345</div>
<div class ="content">85552</div>
<div class ="content">2345</div>
<div class ="content">25345</div>
<div class ="content">123</div>
<div class ="content">1</div>
<div class ="content">852524</div>
<div class ="content">22</div>