Variable übergeben und als Eigenschaft nutzen
bearbeitet von
Guten Abend,
ich bins schon wieder. Mit einer Frage eher aus dem Anfängerbereich. Vielleicht kompletter Nonsens. Mal gucken...
Ich habe die Funktion test(), mit der ich den Wert von data-a aus dem Absatz-Element ausgebe:
~~~ JavaScript
<!DOCTYPE html>
<html>
<body>
<p id="text" data-a="a" data-b="b" data-c="c">TEST</p>
<script>
const text = document.getElementById("text");
function test(element) {
let wert = element.dataset.a;
element.textContent = wert;
}
test(text);
</script>
</body>
</html>
~~~
Soweit kein Problem. Nun möchte ich aber nicht statisch data-a ausgeben, sondern die jeweilige dataset-Eigenschaft dynamisch in die Funktion packen:
~~~ JavaScript
function test(element, attribut) {
let wert = element.dataset.attribut;
element.textContent = wert;
}
test(text, "a");
~~~
Das funktioniert natürlich nicht, weil attribut keine Eigenschaft des dataset-Objekts ist, sondern a. Gibt es die Möglichkeit, hier eine Art Variable zu setzen, die die Eigenschaft enthält?
Ich kann natürlich auch innerhalb der Funktion entscheiden, was passieren soll...
~~~ JavaScript
function test(element, attribut) {
let wert;
if(attribut === "a") wert = element.dataset.a;
if(attribut === "b") wert = element.dataset.b;
element.textContent = wert;
}
test(text, "a");
~~~
Aber das ist viel redundantes Zeug. Vor allem in meinem Script, wo sich noch viel mehr wiederholt. Wo ich die datasets auch noch aus weiteren Elementen einsammele usw. Ich bekomms am Ende mit viel Schreibarbeit hin. Oder gibts für den mittleren Ansatz eine Lösung?
Gute Nacht
Nico
Variable übergeben und als Eigenschaft nutzen
bearbeitet von Nico R.Guten Abend,
ich bins schon wieder. Mit einer Frage eher aus dem Anfängerbereich. Vielleicht kompletter Nonsens. Mal gucken...
~~~ JavaScript
<!DOCTYPE html>
<html>
<body>
<p id="text" data-a="a" data-b="b" data-c="c">TEST</p>
<script>
const text = document.getElementById("text");
function test(element) {
let wert = element.dataset.a;
element.textContent = wert;
}
test(text);
</script>
</body>
</html>
~~~
Ich habe die Funktion test(), mit der ich den Wert von data-a aus dem Absatz-Element ausgebe. Soweit kein Problem. Nun möchte ich aber nicht statisch data-a ausgeben, sondern die jeweilige dataset-Eigenschaft dynamisch in die Funktion packen:
~~~ JavaScript
function test(element, attribut) {
let wert = element.dataset.attribut;
element.textContent = wert;
}
test(text, "a");
~~~
Das funktioniert natürlich nicht, weil attribut keine Eigenschaft des dataset-Objekts ist, sondern a. Gibt es die Möglichkeit, hier eine Art Variable zu setzen, die die Eigenschaft enthält?
Ich kann natürlich auch innerhalb der Funktion entscheiden, was passieren soll...
~~~ JavaScript
function test(element, attribut) {
let wert;
if(attribut === "a") wert = element.dataset.a;
if(attribut === "b") wert = element.dataset.b;
element.textContent = wert;
}
test(text, "a");
~~~
Aber das ist viel redundantes Zeug. Vor allem in meinem Script, wo sich noch viel mehr wiederholt. Wo ich die datasets auch noch aus weiteren Elementen einsammele usw. Ich bekomms am Ende mit viel Schreibarbeit hin. Oder gibts für den mittleren Ansatz eine Lösung?
Gute Nacht
Nico