checkboxen selektieren

Maik20

Erfahrenes Mitglied
Hallo,

ich bin in Punkte JavaScript (fast) blutiger Anfänger. Jetzt stehe ich vor einem Problem wo ich mal Hilfe bräuchte.

Ich habe folgende Tabelle:

Code:
<table>
<tr><td><input type=\"checkbox\" name=\"s_1\" value=\"true\"></td><td>Test 1</td></tr>
<tr><td><input type=\"checkbox\" name=\"s_2\" value=\"true\"></td><td>Test 2</td></tr>
<tr><td><input type=\"checkbox\" name=\"s_3\" value=\"true\"></td><td>Kein Test</td></tr>
</table>

Ich suche jetzt nach einer Möglichkeit per Knopfdruck / Link alle Checkboxen zu selektieren, bei denen in der Bezeichnung (Spalte neben dem Tabellenfeld der Checkbox) mit dem Wort "Test" beginnt.

In dem Beispiel s_1 und s_2. Wie ich alle oder einzelne Checkboxen selektieren kann ist mir klar. Das Problem ist nur das eben die Bezeichnung nicht in der Checkbox sondern in dem Tabellenfeld daneben steht.

Kann mir hier jemand weiterhelfen?
 
Moin Maik,

das kannst du folgendermaßen ermitteln:
Code:
[checkboxObjekt].parentNode.nextSibling.innerHTML.match(/^\s*Test/)
...wobei [checkboxObjekt] ein Zeiger auf das Element-Objekt der jeweiligen Checkbox ist.
 
Hallo Sven,

das verstehe ich noch nicht ganz.

Muss ich jetzt in einer Schleife alle Checkboxen durchlaufen? Wie komme ich daran?

Und wenn [checkboxObjekt] das Checkbox-Objekt ist, kann ich das dann so setzen?

Code:
for 
if ([checkboxObjekt].parentNode.nextSibling.innerHTML.match(/^\s*Test/)){
    [checkboxObjekt].checked = true ;
}
 
Jo, du müsstest da eine Schleife verwenden.
Da die Checkboxen nichts gemeinsam haben, ausser dass sie <input>'s sind und den type "checkbox" haben, müsstest du in dieser Schleife per getElementsByTagName() alle input-Elemente durchlaufen und prüfen, ob ihr type "checkbox" ist.


Den Zeiger erhältst du dann per
Code:
document.getElementsByTagName('INPUT')[indexDerChecbox]

Wenn du der Tabelle eine ID verpasst, kannst du das ganze schonender gestalten, indem du nur die Inputs der Tabelle durchläufst.

Die Vorgehensweise würde dann so aussehen:
Code:
boxes=document.getElementById('idDerTabelle').getElementsByTagName('INPUT');
for(i=0;i<boxes.length;++i)
  {
    if(boxes[i].type=='checkbox' && boxes[i].parentNode.nextSibling.innerHTML.match(/^\s*Test/))boxes[i].checked=true;
  }
 

Neue Beiträge

Zurück