2013-10-29 74 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

相關問題