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会发生什么?你看到控制台中有任何错误吗? –