Ich habe ein Array mit der Methode json.stringify in einem localStorage gespeichert. Jetzt rufe ich den lokalen Speicher in einem Array ab. Wie kann über das Array iterieren. Unten ist, was ich bisher gemacht habe

Mit dem folgenden Code wird die Tabelle mit den Werten als angehängt

<td> 448239239,232324201 </td>

Aber ich möchte, dass die Daten als angezeigt werden

<td> 448239239</td>
<td> 232324201</td>

Was könnte das Problem mit meinem Code unten sein?

File.js

var items = [];
items.push(localStorage.getItem('numbers'));
if (items != '') {
  $.each(items, function(index, value) {
    $('#myTableID2 #user-id2').append('<tr><td>' + value + '</td></tr>');
  });
}
1
RoboPHP 7 Feb. 2020 im 15:46

3 Antworten

Beste Antwort

Dies liegt daran, dass der Wert von localstorage eine Zeichenfolge ist. Sie müssen also als Komma-Trennzeichen aufteilen

var items = [];
    localStorage.setItem('numbers', '448239239,232324201');
    items = localStorage.getItem('numbers').split(',');

    if (items != '') {
      $.each(items, function(index, value) {
        $('#myTableID2 #user-id2').append('<tr><td>' + value + '</td></tr>');
      })
    }


    <table id='myTableID2' border='1px solid green'>
      <tbody id='user-id2'> </tbody>
    </table>
1
brk 7 Feb. 2020 im 13:03

Sie müssen zuerst den vom localStorage abgerufenen Wert analysieren, da Sie Zeichenfolgen nur im lokalen Sitzungsspeicher speichern können. Versuchen Sie Folgendes:

var items = localStorage.getItem('numbers')

if (items) {

  items = JSON.parse(items)

  $.each(items, function(index, value) {
    $('#myTableID2 #user-id2').append('<tr><td>' + value + '</td></tr>')
  })

}
1
Sebastian Sulinski 7 Feb. 2020 im 12:51

Sie müssen zuerst den JSON analysieren, bevor Sie einzelne Zeilen für jedes Array-Element erstellen:

var items = localStorage.getItem('numbers');

if (items) {
    JSON.parse(items).forEach(function(v) {
        $('#myTableID2 #user-id2').append('<tr><td>'+v+'</td></tr>');
    });
}
1
Terry 7 Feb. 2020 im 12:51