!

Dette materialet blir ikke lenger vedlikeholdt. Du vil finne oppdatert materiale på siden: http://borres.hiof.no/wep/

CSS
Børre Stenseth
? Browser Support ?
CSS > Eksempler >Eksempel 6

Tabell beregning JS

Hva
Tabell beregning

CSS-selectorer har mye til felles med XPATH, både i form og funksjon.

I denne modulen skal vi lage et slags mini regneark. Vi bruker CSS-selectorer til å identifisere de elementene i en tabell vi skal lese og skrive i.

Tabellene i eksempelet er laget med en overskriftsrad, en rad nederst som skal holde kolonnesummer og en kolonne til høyre som skal holde radsummer.

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:

_summ.js

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 ?
? ? ? ?
and write in the tablecells

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";
 }
}
Referanser
  1. CSS W3C www.w3.org/TR/CSS/ 14-10-2011
Vedlikehold
Børre Stenseth, oktober 2012
( Velkommen ) CSS > Eksempler >Eksempel 6 ( JavaScript )