Nico R.: Variable übergeben und als Eigenschaft nutzen

Beitrag lesen

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:

<!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:

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...

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