2013-10-29 75 views
0

我有这段代码。我很抱歉它是混乱的。我是一个新手,因此问题。它应该填充查询字符串中的复选框。它适用于Chrome,Safari,Firefox。刚开始测试IE和IE 8时,它不起作用。点击已注册,但复选框不会填充。没有错误抛出,它似乎简单地忽略它。Javascript不能在IE8中工作,不知道为什么

//set var for queryString - "?" 
      var queryString = window.location.search.substring(1); 

      var parameters = queryString.split('&'); 

      var paramObject = new Object(); 

      for(var i =0; i < parameters.length; ++i){ 
       var equalsPos = parameters[i].indexOf('='); 
       var key = decodeURIComponent(parameters[i].substring(0,equalsPos)); 

       var stringLength = parameters[i].length; 

       var value = decodeURIComponent(parameters[i].substring(equalsPos + 1, stringLength).replace(/\+/g,' ')); 

       if(!paramObject[key]) { 
        //console.log('paramObject[key] =' + paramObject[key]); 
        paramObject[key] = value; 
        //console.log('paramObject[key] = value = ' + value + paramObject[key]); 
        //console.log(paramObject[key]); 
       }else if(paramObject[key] instanceof Array){ 
        paramObject[key].push(value); 
        //console.log(paramObject[key]); 
       } else { 
        var newArray = []; 
        var existingValue = paramObject[key]; 
        //console.log('existing value: '+ existingValue); 
        //console.log('value: ' + value); 
        newArray.push(existingValue); 
        newArray.push(value); 
        paramObject[key] = newArray; 
       } 

      } 

      //console.log(paramObject); 


      for (key in paramObject) { 

       $('input[name="' + key + '"]').each(function(){ 
        var obj = paramObject[key]; 

        for(prop in obj){ 

         if(obj instanceof Array){ 

          if(obj.hasOwnProperty(prop)){ 
           //console.log(key + '=' + obj[prop]); 
           if($(this).attr('value') == obj[prop]){ 
            $(this).attr('checked','checked');      
           } 
          } 
         }else{ 
          if(obj.hasOwnProperty(prop)){ 
           if($(this).attr('value') == obj){ 
            $(this).attr('checked','checked');      
           } 
          } 
         } 
        } 
       }); 
      } 
+2

它如何“不起作用”?它做什么呢? IE8会发生什么?你看到控制台中有任何错误吗? –

回答

3

回答here IE8不支持主机对象的hasOwnProperty()方法。那里有你正在寻找的答案的评论。祝你好运!

+0

谢谢!感谢您的帮助。 – Jursels

相关问题