Don P: Zellen in einer Tabelle sperren und Counter

Beitrag lesen

Hallo,

<td onclick="zahl()"><input id="clicked" size="3" value="0" /></td>

In jeder Zelle befindet sich ein Zähler

Ich nehme an, du meinst mit "Zähler" das Input-Feld.
Und die haben alle gleiche id "clicked"? Das darf natürlich nicht sein, wurde ja schon gesagt.

Dass value = "0" und value = "1" keine Vergleiche sind, wurde auch schon gesagt.

Du übertreibst es übrigens mit dem x-fachen Aufruf von document.getElementById.
So geht's in deinem Fall auch, und ganz ohne id:

function zahl() {
        var zählerElt = this.firstChild;
zählerElt.value = zählerElt.value == "0" ? "1" : "0";
}

Oder ganz tricky:
zählerElt.value = +!+zählerElt.value;
Erklärung:

  1. +zählerElt.value wandelt den Wert in eine Zahl (0 oder 1)
  2. !+zählerElt.value negiert den booleschen Wert dieser Zahl, ergibt also true oder false
  3. +!+zählerElt.value wandelt dieses Ergebnis wieder zu einer Zahl, ergibt also 1 oder 0

Gruß, Don P