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');
}
}
}
}
});
}
它如何「不起作用」?它做什麼呢? IE8會發生什麼?你看到控制檯中有任何錯誤嗎? –