Camping_RIDER: Platzhalter für Nachladen von Tabellenzeilen unsichtbar <div> ?

Beitrag lesen

Aloha ;)

ok, nochmals bitte für Voll-Dummies wie mich.

dann könnte ich auch einfach meinen Code aus der function getnewrow()

document.getElementById(tabr).innerHTML=xmlhttp.responseText;
mit

document.querySelector(tabr).innerHTML +=xmlhttp.responseText;


> austauschen  
  
Ja, stimmt so. Fast. In CSS wird ein ID-Selektor mit # eingeleitet, also eher:  
  
~~~javascript
  
document.querySelector('#'+tabr).innerHTML +=xmlhttp.responseText;

Wobei es da wirklich egal ist (da du einen Befehl gegen einen gleichwertigen tauschst). Interessant ist querySelector vor allem da, wo mehrere Selektoren kombiniert vorkommen - denn dann spart man sich schnell etliche Zeichen, wenn nicht Zeilen. Oldschool und modern sagte ich in Bezug darauf, dass es die Methode querySelector noch gar nicht so lange gibt.

Und ganz allgemein gilt: Never change a running system...

und statt der <div id=tabr></div> die am ende der letzten zeile in der tabelle steht also vor dem ende des tbodys

schreibe ich es so um

<table>

<tbody id=tabr>
<tr><td>das ist die erste Zeile</td></tr>
</tbody>
</table>
<tr><td>< hier ist der add-newrow-button onclick=addnewrow() ></td></tr>

  
Moment, egal was du gerade tun willst - das ist schmu. Du hast hier eine tr mitten in der Pampa (lies: auserhalb einer Tabelle). Das muss dann, wenn schon, z.B. ein <p> (statt tr, td) o.ä. sein.  
  
Aber...  
  

> somit wird mir dann  
> den code wie folgt erweiteren  
> ~~~html

<table>  

> <tbody id=tabr>  
> <tr><td>das ist die erste Zeile</td></tr>  
> <tr><td>hier ist also die neue Zeile</td></tr>  
> </tbody>  
> </table>  
> <tr><td>< hier ist der add-newrow-button onclick=addnewrow() ></td></tr>  
> 

...ja, schätze die prinzipielle Funktionsweise hast du verstanden ;)

Rein semantisch ist es auch besser, den Button draußen stehen zu haben. Welchen Sinn sollte es auch haben, dass der eine neue Zeile einfügende Button selbst in einer Zeile im tbody steht.

Anregung: Eventuell in den tfoot damit? Schließlich gehören Button und Tabelle inhaltlich zusammen, im tbody hat der button nichts zu suchen, weil er nicht als tabellarischer Datensatz interpretiert werden kann (hättest du für jede Zeile einen zeilenbezogenen Button wäre das was anderes). Steuerelemente für die Gesamttabelle haben imho im tfoot oder thead dann aber dennoch eine Daseinsberechtigung. Also dann etwa so:

<table>  
<tbody id=tabr>  
<tr><td>das ist die erste Zeile</td></tr>  
<tr><td>hier ist also die neue Zeile</td></tr>  
</tbody>  
<tfoot>  
<tr><td>< hier ist der add-newrow-button onclick=addnewrow() ></td></tr>  
</tfoot>  
</table>  

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[