JavaScript: Wie bekomme ich ein Object anhand einer ID zurück und display: none / block-Problem?

Hallo,

ich habe zwei Fragen.

1) Ich habe ein Array mit Objekten. Der Anwender kann sich aus einer select-Auswahl eine ID auswählen und dann werden die Informationen dargestellt und er kann sie verändern.

Wie bekomme ich anhand eines Wertes von einem Objekt (die ID) das ganze Objekt zurück?

Beispiel:

arr: [{
  id: 123,
  wert: null
}, {
  id: 456
  wert: "Test"
}]

// User wählt Objekt anhand der ID
var choice = getSelectBox(); //Bsp. 456
var object = getObject(user); //das zweite Objekt
console.log(object.wert); //prints Test

2) Ich habe öfters auf meiner Seite einen Container mit display: block/none und schalte dann mit einer Funktion um auf das andere. Das Problem: Beim allerersten Mal muss das Element, auf dem diese Funktion gelegt ist, doppelt angeklickt werden. Danach nur noch einmal. Das liegt daran, dass JavaScript die Werte beim ersten Klicken offenbar nicht richtig geladen bekommt. Zumindest steht es so im Internet. Gibt es da irgendeinen Trick, den man da anwenden kann?

Beispiel-Methode:

showOptions function() {
  var opt = document.getElementById("notShown")

  if (opt.style.display != "none") {
    opt.style.display = "none"
  }
  else {
    opt.style.display = "block"
  }
}

HTML:

<p id="optional" onclick="showOptions()">Weitere optionale Wahlmöglichkeiten:</p>
<!-- ausgeblendeter Teil -->
<div id="notShown">
  <!-- Mehrere Container etc. -->
</div>

Ich hoffe, es ist verständlich, was ich erreichen möchte.

Computer, HTML, Programmieren, Coden, CSS, JavaScript, Informatik
1 Antwort

Was möchtest Du wissen?