heinetz: Array in Data-Attribut

Hallo Forum,

ich möchte ein Array aus Strings in einem Data-Attribut speichern und das Array dann in JavaScript auslesen. Das vom Server ausgelieferte Markup sieht das im Moment wie folgt aus:

<div data-js-alt-disabled-services="[&quot;analytics&quot;,&quot;fbi&quot;]">

Wenn ich das per console.log() ausgebe, sieht es auch ganz gut aus:

["analytics","fbi"]

Für Javascript ist das aber irgendwie noch ein String. D.h. wenn ich das vermeintliche Array in einer Schleife durchlaufe, wird Buchstabe für Buchstabe ausgegeben:

0: "[" 1: """ 2: "a" ...

Was kann ich tun?

danke und beste Grüße, heinetz

  1. Hallo,

    du könntest erst mal das html vereinfachen:

    <div data-js-alt-disabled-services="analytics;fbi">
    

    und dann daraus mit split den String an den „;“ auftrennen und in ein Array umwandeln.

    Gruß
    Jürgen

  2. Einbau:

    1. Wandle den Array in gültiges JSON um
    2. quotiere den resultierenden String, so dass er in Data passt.

    Auslesen:

    1. Lese den String
    2. Objektvariable=JSON.parse(string);

    (Fertig)

    1. @@ursus contionabundo

      1. Wandle den Array in gültiges JSON um

      Ist doch schon gültiges JSON.

      LLAP 🖖

      --
      „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
  3. @@heinetz

    Das vom Server ausgelieferte Markup sieht das im Moment wie folgt aus:

    <div data-js-alt-disabled-services="[&quot;analytics&quot;,&quot;fbi&quot;]">
    

    Wenn du außen einfache Anführungszeichen setzt, musst du die inneren doppelten nicht escapen:

    <div data-js-alt-disabled-services='["analytics","fbi"]'>
    
    ["analytics","fbi"]
    

    Für Javascript ist das aber irgendwie noch ein String.

    Ein JSON-String vielleicht?

    Was kann ich tun?

    Parsen: JSON.parse()

    LLAP 🖖

    --
    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann