2017-03-06 72 views
0

請看下面的例子。我不明白爲什麼它是工作在Firefox & Chrome,但不是在IE 11JavaScript創建表在IE中不工作

https://jsfiddle.net/4qr8Ln4e/

<html> 
    <head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
    data = { d : { 
     results: [ 
      { Title: 'Title1', Description: 'Description1', Status: 'Status1', Complete: 'Complete1' }, 
      { Title: 'Title2', Description: 'Description2', Status: 'Status2', Complete: 'Complete2' }, 
      { Title: 'Title3', Description: 'Description3', Status: 'Status3', Complete: 'Complete3' }, 
      { Title: 'Title4', Description: 'Description4', Status: 'Status4', Complete: 'Complete4' } ] } }; 

    data.d.results.push({Title: 'Title5', Description: 'Description5', Status: 'Status5', Complete: 'Complete5'}); 


    $(document).ready(function() { 
     for (var i = 0; i < data.d.results.length; i++) { 
      item = data.d.results[i] 
      str = '<tr><td>' + item.Title + '</td><td> ' + item.Description + '</td><td>' + item.Status + '</td><td>' + item.Complete + '</td></tr>'; 
      $('#mytab tr').last().after(str); 
     } 
    }); 

    </script> 
    </head> 
    <body> 
    <table id="mytab"> 
    <tr> 
     <td>Task Title</td> <td>Description</td> <td>Task Status</td> <td>% Complete</td> 
    </tr> 
    </table> 
    </body> 
</html> 

回答

1

簡單回答您聲明變量,但不var,它可以在Firefox和Chrome,但不是在作品IE瀏覽器,這是一個不好的做法不var聲明變量,來運行你的代碼,你只是只需要項目之前更改

for (var i = 0; i < data.d.results.length; i++) { 
     var item = data.d.results[i] 
     var str = '<tr><td>' + item.Title + '</td><td> ' + item.Description + '</td><td>' + item.Status + '</td><td>' + item.Complete + '</td></tr>'; 
     $('#mytab tr').last().after(str); 
    } 
+0

很好的答案,謝謝! – Jaron787

1

請加VAR:

var item = data.d.results[i];