0

我想繞過這個問題,但沒有看到是什麼原因造成的錯誤,我有以下函數只能在ie8中獲取錯誤,並且由於這打破了所有jQuery功能以及其他JavaScript位。 (函數位於app.js文件中)是關於jQuery函數「期望的標識符,字符串或數字」的IE8錯誤

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

您定位的是哪個版本的jQuery? – wicker95 2015-03-13 12:28:20

+0

@ wicker95 2.1.3對於ie9及以上版本,1.11.2對於ie8及以下版本,我也有過這樣的想法,但是在刪除了問題中提到的有問題的函數之後,一切正常,因此正確的加載了jQuery – Ilja 2015-03-13 12:30:52

+0

哪個代碼行會拋出錯誤? – collapsar 2015-03-13 12:33:03

回答

1

所以,我說我的評論,IE瀏覽器要求關鍵字在不用作關鍵字時用引號括起來,比如下面的關鍵字。請注意關鍵字,類別等。

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.爲了保持一致,我已經包裝了所有的密鑰。

0

MH,我猜你需要字符串數組中,不

var arrayAges = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17']; 

此外,你應該(不是必須的,但是者優先),以arrayAges的條件之前再次宣佈你的變種並影響你的if/else。

相關問題