我正在尝试使用jQuery设置过滤器。我会有一定数量的div,每个div都有一个数值(比如价格)。
下面的代码工作正常,直到您输入小于10的值。然后您得到的结果不应该存在。 (例如输入4)
任何有关修复此问题的帮助都会很棒!谢谢!
<script>
function sortmebaby()
{
var divList = $('#containerMonkey div[id^="monkey_"]');
$.each(divList, function(index, value)
{
console.log($(value).attr('xprice'));
if ( $(value).attr('xprice') > $('#mankipower').val())
$(value).hide();
else
$(value).show();
//alert(index + ': ' + value);
});
}
</script>
<div id="containerMonkey">
<div id="monkey_1" xprice="10">10</div>
<div id="monkey_2" xprice="20">20</div>
<div id="monkey_3" xprice="30">30</div>
<div id="monkey_4" xprice="40">40</div>
<div id="monkey_5" xprice="50">50</div>
</div>
<input type="text" name="mankipower" id="mankipower">
<input type="button" value="PUSH" onclick="sortmebaby()">
谢谢!
答案 0 :(得分:1)
if
语句中的条件是比较字符串,而不是您期望的整数。您可以使用parseInt
将字符串转换为数字:
var val1 = parseInt($(value).attr('xprice'), 10),
val2 = parseInt($('#mankipower').val(), 10);
if(val1 > val2)
$(value).hide();
else
$(value).show();
这是一个updated example。