• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Frage zu Data-Attributen

STFNJNG

New member
Hallo zusammen,

in einer Funktion generiere ich einen DIV mit einer ID den ich in einen anderen DIV laden lasse.
Ich verwende diesen Code:
Code:
divTag.setAttribute('config-data', 'c+durchgang);
var _ablage=document.getElementById("ablage");
_ablage.appendChild(divTag);

Das funktioniert.

Meine Frage ist:
in dem config-data Attribut liegen mehrere Variablen, jeweils getrennt durch ein <br />-Tag.

Wenn ich nun einem Button folgendes sage:
Code:
<div id="button_absenden"><input type="button" name="button_absenden" value="Anfrage absenden!" onclick="anfrageSenden()"></div>
und die gerufene Funktion so aussieht:
Code:
function anfrageSenden(){
var toeroe=document.getElementById("ablage").innerHTML;
alert(toeroe);
}

sieht mein alert so aus:
Code:
<div id="divTag1" align="center" class="div_ablage" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; " config-data="W. Schillig<br />Taboo<br />Element 6<br /> -1">Element 1 - Durchgang 1</div>

So sieht es ohne CODE aus:
<div id="divTag1" align="center" class="div_ablage" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; " config-data="W. Schillig<br />Taboo<br />Element 6<br /> -1">Element 1 - Durchgang 1</div>


FRAGE:
Wie bekomme ich es hin, dass ich nur die Inhalte der config-data Attribute in den alert bekomme???

Ich will die Attribute später an PHP senden und per Email versenden.


Danke an alle die sich dem Thema widmen ...

MFG Stefan
 
Hi Stefan,

hochentzückt - ich liebe (!) data-* - habe ich Deinen Thread gesehen und eile zur Hilfe! :D Doch dann lese ich "config-data" ... hmmm ... schau mal: klick!

Dann ist das "br" (zzgl.) als Trenner ungeeignet. Was hältst Du stattdessen von JSON, wodurch Du keine Zeichen oder gar Sonderzeichen "opfern" musst? Wenn Du unbedingt ein Zeichen "opfern" willst, so geht über meinen Altar die Pipe ("|"). Vor Ausgabe darfst Du natürlich dann mit einschlägigen Befehlen zur Aufbereitung Deiner Ausgabe arbeiten.

Ansonsten musst Du bedenken, dass "br" (zzgl.) in einem alert() nicht funktioniert - hier geht nur "slash-n" (ohne - und als AltGr+ß), wenn Du auf mehrere Zeilen aufsplitten willst.

Dann bitte ich um Verzeihung, da Du danach nicht gefragt hast, ich Dich nun aber damit attackiere:
Code:
<div id="divTag1" align="center" class="div_ablage" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; " ...

Kurzform: Bitte verwende CSS! Das dürfte dann so aussehen:
#divTag1 {
text-align:center;
margin: 0 auto 0 auto; // 0 benötigt keine Einheitsangabe - 0 ist 0; bei em wie px usw.
}

... und was immer in "div_ablage" (Klasse) noch erwähnt wird, lässt sich ergänzen oder diese Klasse eben erweitern (um den inline-Style). Nur verwende bitte kein "align" mehr ... mindestens!

Beste Grüße vom Kaffeebecherrand
 
Zunächst einmal würde ich von Nicht-Standard-Attributen absehen und aus config-data mal data-config machen. Die (Standard-)-data-Attribute haben den Vorteil, dass sie in Javascript gleich über die dataset Collection verfügbar sind
Code:
divTag.dataset["config"] = c+durchgang;

Und der Alert geht so:
Code:
function anfrageSenden(){
   var toeroe=document.getElementById("divTag1").dataset["config"];
   alert(toeroe);
}
 
Hallo zusammen,

puhhh, das ging schnell!! VIELEN VIELEN DANK für eure Ausführungen, ich werde das gleich mal umsetzen und mich mit einem Ergebnis melden! :)

VIELEN DANK!!!!!

Liebe Grüße, Stefan
 
NB @devnull69: der Zugriff auf das dataset funktioniert auch ohne Schema 4: divTag.dataset.config = c+durchgang; - finde ich schöner zu lesen.
 
Zurück
Oben