2015-09-27 75 views
0

我试图做一个函数来过滤所有在特定价格范围之间的标记,但是我无法使其工作。我尝试使用下面的代码。筛选器在特定价格范围内的标记

我在做什么错?

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

输入字段值是字符串,你需要分析他们的编号为攀比正常工作。取决于您使用的号码种类,使用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/

+0

和同样的标记对象价格也是字符串 – charlietfl

+0

谢谢各位!它现在有效。 –