Tabell beregning JS
Stilsettet for begge tabellene under er slik:
table{border-collapse: collapse;}
table td{padding:10px}
table thead td{border-bottom-style:solid;font-weight:bold}
table tfoot td{border-top-style:solid}
table tbody td+td{border-left-style:solid}
Summer
Table(tab1)
| A | B | C | D | |
| 11 | 12 | 13 | 14 | ? |
| 21 | 22 | 23 | 24 | ? |
| 31 | 32 | 33 | 34 | ? |
| ? | ? | ? | ? |
Den involverte Javascriptkoden er slik:
Editer og summer
Her forsøker vi å lage en tabell der brukeren kan skrive verdier inn i feltene og få en øyeblikkelig oppdatering av alle summer. Vi gjør dette ved å sette attributten contenteditable i de cellene som skal være "skrivbare".
Det er mulig ved hjelp av CSS-selectorene å velge ut (og markere) deler av tabellen som er editerbare, f.eks bare en rad.
En funksjonell løsning burde ha bedre kontroll på at det er tall som skrives inn.
Table(tab2)
| A | B | C | D | |
| 11 | 12 | 13 | 14 | ? |
| 21 | 22 | 23 | 24 | ? |
| 31 | 32 | 33 | 34 | ? |
| ? | ? | ? | ? |
Javascript funksjonen som gjør tabellen editerbar er slik:
// make cells in a table contenteditable
function makeEditable(tabid){
// includes the sum (rightmost) col (which it shouldnt)
var path='#'+tabid+' tbody td';
// so we use this:
path='#'+tabid+' tbody tr td:not(:last-child)';
var cells=document.querySelectorAll(path);
for(var ix=0; ix < cells.length; ix++){
cells[ix].contentEditable='true';
cells[ix].onkeyup=function(){
sumAll(tabid)};
cells[ix].style.color="green";
}
}