Jquery Filter显示不稳定的结果

时间:2011-10-03 09:55:57

标签: javascript filter

我正在尝试使用jQuery设置过滤器。我会有一定数量的div,每个div都有一个数值(比如价格)。

下面的代码工作正常,直到您输入小于10的值。然后您得到的结果不应该存在。 (例如输入4)

任何有关修复此问题的帮助都会很棒!谢谢!

http://jsfiddle.net/SUWxn/

<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()">

谢谢!

1 个答案:

答案 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