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

Attributisierung mit dataset über Variablen

gNano

New member
Hallo,

ich würde gerne in einer div einige Werte, die inhaltlich auch zur div gehören zwischenspeichern. Dazu möchte ich dataset verwenden.
Dabei tritt leider folgendes Problem auf.
Code:
var today = new Date();

var minutes = getMinutes(); //Liefert korrekten Wert z.b. 45
var hours = getHours();       // Liefert ebenfalls korrekten Wert z.B. 15 - zusammen also bspw. 15:45Uhr

var myDiv =  document.getElementById('testdiv');
myDiv.dataset.saveminutes = String(minutes);   //dataset.saveminutes wird hier erstmalig definiert und es soll der Wert minutes gespeichert werden. saveminutes ist um den Faktor 10  größer?! Also 450
window.alert(myDiv.dataset.saveminutes); // Hier erscheint der Wert 450 bei obigem Beispiel!
myDiv.dataset.savehours = String(hours); //Auch hier ist dataset.savehour um den Faktor 10 größer?!
window.alert(myDiv.dataset.savehours); // Hier erscheint der Wert 150 bei obigem Beispiel

Wieso sind die abgespeicherten Werte um den Faktor 10 größer, wenn ich sie über Variablen speicher? Wenn ich beispielsweise
Code:
myDiv.dataset.saveminutes = '45';
verwende, wird ja auch der richtige Wert gespeichert.

Viele Grüße

P.S. Ich weiß, dass die Umwandlung via String() eigentlich nicht nötig ist, hatte aber gehofft das das das Problem löst.
 
Zuletzt bearbeitet:
Du hast vergessen die Methoden von today abzuholen
Code:
//////today fehlt/////////
var minutes = getMinutes(); 
var hours = getHours();    
///////////// 
//Methode muss aus der Instanz aufgerufen werden.
var minutes = today.getMinutes(); 
var hours = today.getHours();   
//// so hats  funktioniert  auf Chrome  W10
 
Vielen Dank für den Hinweis. Das ist mir leider nur im Minimalbeispiel hier passiert. In meinem eigentlichen Code werden die Variablen minutes und hours korrekt zugewiesen.


Du hast vergessen die Methoden von today abzuholen
Code:
//Methode muss aus der Instanz aufgerufen werden.
var minutes = today.getMinutes(); 
var hours = today.getHours();   
//// so hats  funktioniert  auf Chrome  W10

Sofern ich aber
Code:
var today = new Date(2016,10,29,9,0,0);

var minutes = today.getMinutes(); 
var hours = today.getHours();
verwende, will es nicht mehr? Habe ich nochetwas übersehen?
 
Ich kann dein Problem nicht reproduzieren:
Code:
<!DOCTYPE html>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Fenstertitel</title>
<style type="text/css"></style>
</head>
<body>
<div id="testdiv"></div>
<script type="text/javascript">
var today = new Date();

var minutes = today.getMinutes(); //Liefert korrekten Wert z.b. 45
var hours = today.getHours();       // Liefert ebenfalls korrekten Wert z.B. 15 - zusammen also bspw. 15:45Uhr

var myDiv =  document.getElementById('testdiv');
myDiv.dataset.saveminutes = minutes;   //dataset.saveminutes wird hier erstmalig definiert und es soll der Wert minutes gespeichert werden. saveminutes ist um den Faktor 10  größer?! Also 450
window.alert(myDiv.dataset.saveminutes); // Hier erscheint der Wert 450 bei obigem Beispiel!
myDiv.dataset.savehours = hours; //Auch hier ist dataset.savehour um den Faktor 10 größer?!
window.alert(myDiv.dataset.savehours); // Hier erscheint der Wert 150 bei obigem Beispiel
</script>
</body>
</html>

In welchem Browser in welcher Version testest du denn?
 
Zurück
Oben