2017-02-02 2 views
4

Моя проблема заключается в следующем: Я создал массив из таблицы, которую у меня уже есть, и сохранил нужный мне столб в массиве, а затем сохранил его в localStorage с помощью JSON .stringify:Показать данные таблицы на другой странице в таблице HTML

function createArray(){ 
     var arrayPlayerName = []; 
     var count = 1; 
     while(count<=playerNum){ 
      arrayPlayerName.push(document.getElementById('playertable').rows[count].cells[1].innerHTML); 
      count++; 
     } 

     localStorage.setItem("playerNameArray", JSON.stringify("arrayPlayerName")); 
    } 

(playerNum представляет собой переменный с фиксированным числом используемого в других методах, а также "getElementById" работает).

После этого я хочу показать эти данные в другой таблице в другом документе HTML. Итак, следующий мой HTML код:

<table class="myTable"> 
    <thead> 
     <tr class="row"> 
      <th colspan="3">Array List</th> 
     </tr> 
    </thead> 
</table> 

И это сценарий:

var storedPlayerArray = JSON.parse(localStorage.getItem("playerNameArray")); 

    tablegenerate (storedPlayerArray); 

    function tablegenerate (list) { 
     for(i=0; i<playerNum;i++){ 
      var $formrow = '<tr><td>'+list[i]+'</td></tr>'; 
      $('.myTable').append($formrow); 
     } 
    } 

Я не уверен, что я делаю неправильно .. спасибо заранее.

EDIT: Я вызываю функцию createArray с помощью кнопки, и я перехожу на вторую страницу с помощью другой кнопки. Вторая страница должна загружаться напрямую.

EDIT2: Я переделал, что массив хранится и вызывается правильно на второй странице, поэтому проблема теперь находится в функции «tablegenerate».

ответ

1

EDIT

Я думаю, что я нашел проблему, попробуйте следующее:

var storedPlayerArray = JSON.parse(localStorage.getItem("playerNameArray")); 

function tablegenerate (list) { 
    for(var i=0; i<list.length;i++){ 
     var $formrow = $('<tr><td>'+list[i]+'</td></tr>'); 
     $('.myTable').append($formrow); 
    } 
} 
$(document).ready(function(){ 
    tablegenerate (storedPlayerArray); 
}) 


У вас есть вопрос в вашей createArray функции .. Вы работаете JSON.stringify на строку вместо массива вы хотите сохранить.

Изменить это:

localStorage.setItem("playerNameArray", JSON.stringify("arrayPlayerName")); 

Для этого:

localStorage.setItem("playerNameArray", JSON.stringify(arrayPlayerName)); 
+0

Wow вы правы ... просто изменилось, что прямо сейчас. Таблица все еще не отображается на второй странице, хотя :( –

+0

Я получаю теперь ошибку «Не могу прочитать свойство« append »из null» –

+0

Мне нужно будет увидеть еще один код, чтобы понять проблему. Можете ли вы добавить таблицу HTML-плеера и какой еще код, который вы, вероятно, будете иметь отношение –

Смежные вопросы