过滤某个价格范围之间的标记

时间:2015-09-27 21:04:12

标签: javascript google-maps google-maps-markers marker

我正在尝试制作一个功能,过滤所有在某个价格范围之间的标记,但是我无法使其工作。我尝试使用下面的代码。

我做错了什么?

JSFiddle

function priceRange(){      
    var price1 = document.getElementById('price1').value;
    var price2 = document.getElementById('price2').value;

    for(i = 0; i < markers.length; i++){
        marker = gmarkers[i];

        if(marker.price > price1 && marker.price < price2){
            mark.setVisible(true);
        }
        else{
            mark.setVisible(false);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

输入字段值是字符串,您需要将它们解析为数字,以便比较正常工作。根据您使用的号码类型,使用parseInt(str, 10)parseFloat(str)。在解析之前从字符串中删除千位分隔符:

var price1 = parseInt(document.getElementById('price1').value.replace(/\./g, ''), 10);
var price2 = parseInt(document.getElementById('price2').value.replace(/\./g, ''), 10);

以同样的方式解析标记价格(如charlietfl指出):

if(parseInt(marker.price.replace(/\./g, ''), 10) > price1 && parseInt(marker.price.replace(/\./g, ''), 10) < price2){

要使小提琴中的代码工作,您需要在没有包装器的情况下将Javascript代码放在头部,在load事件中,但在其外部使用priceRange函数,以便可以从按钮事件。将按钮中的属性从onlick更改为onclickhttp://jsfiddle.net/jaj1b018/3/