繁体   English   中英

jQuery筛选器显示不稳定结果

[英]Jquery Filter showing erratic results

我正在尝试使用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()">

谢谢!

if语句中的条件是比较字符串,而不是您期望的整数。 您可以使用parseInt将字符串转换为数字:

var val1 = parseInt($(value).attr('xprice'), 10),
    val2 = parseInt($('#mankipower').val(), 10);
if(val1 > val2)
    $(value).hide();
else
    $(value).show();

这是一个更新的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM