我试图绕过这个问题,但是没有看到导致错误的原因,我有以下只在ie8中获取错误的函数,并且由于这会破坏所有jQuery功能以及其他JavaScript位。 (函数位于app.js文件中)
function visitorAges(category, number) {
// Ages for adults
if (category == 'adult') {
var arrayAges = ['18 - 20', '21 - 30', '31 - 40', '41 - 50', '51 - 60', '60 +'];
}
// Ages for children
else if (category == 'child') {
var arrayAges = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];
}
// Populate related select menu with options
$('#visit_'+category+'_ages').empty();
for (var i=1; i<=number; i++ ) {
var $ageLabel = $('<label/>', {for: 'visit_'+category+'-'+i+'_age', text: category+' '+i});
var $ageSelect = $('<select/>', {name: 'visit_'+category+'-'+i+'_age', id: 'visit_'+category+'-'+i+'_age', class: 'form-control'});
$.each(arrayAges, function(index, value){
$ageSelect.append($('<option/>', {text: value}));
})
$('#visit_'+category+'_ages').append($ageLabel, $ageSelect).fadeIn();
}
} /* END visitorAges() */
我在IE8控制台中遇到的错误如下:
Expected identifier, string or number 'app.js, line 99 character 35'
var arrayAges = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];
和
Expected identifier, string or number 'app.js, line 104 character 35'
var $ageLabel = $('<label/>', {for: 'visit_'+category+'-'+i+'_age', text: category+' '+i});
答案 0 :(得分:1)
因此,正如我在评论中所说,IE要求在不将关键字用作关键字时将其包装在引号中,例如下面的关键字。注意关键字for,class等。
var $ageLabel = $('<label/>', {for: 'visit_'+category+'-'+i+'_age', text: category+' '+i});
var $ageSelect = $('<select/>', {name: 'visit_'+category+'-'+i+'_age', id: 'visit_'+category+'-'+i+'_age', class: 'form-control'});
因此,我们需要做的就是将它们包装在下面,这适用于所有浏览器。
var $ageLabel = $('<label/>', {'for': 'visit_'+category+'-'+i+'_age', 'text': category+' '+i});
var $ageSelect = $('<select/>', {'name': 'visit_'+category+'-'+i+'_age', 'id': 'visit_'+category+'-'+i+'_age', 'class': 'form-control'});
P.S。为了保持一致,我把所有的钥匙都包好了。
答案 1 :(得分:0)
嗯,我猜你的数组需要 String ,而不是数字:
var arrayAges = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17'];
此外,您应该(不是必要但更喜欢)在条件之前声明var arrayAges 并在if / else中影响它。