Avatar billede mmmtm Nybegynder
21. november 2005 - 17:35 Der er 23 kommentarer og
2 løsninger

border-width og -color på <td>

Jeg skal bruge et javascript, der i onLoad sætter en border-color og en border-width, på alle <td> på siden...
Avatar billede thesurfer Nybegynder
21. november 2005 - 19:07 #1
hmm.. det er da det man har CSS til?

<html>
<head>
<title>border</title>
<style type="text/css">
td { border: 1px solid #ff0000; }
</style>
</head>
<body>

<table>
<tr>
<td>dette er td.. yep</td>
</tr>
</table>

</body>
</html>

Eller *skal* det være JavaScript..?

/theSurfer
Avatar billede thesurfer Nybegynder
21. november 2005 - 19:11 #2
Avatar billede mmmtm Nybegynder
21. november 2005 - 19:31 #3
Css duer ikke lige her (skrev forkert - ikke alle <td>)
Pt bruger jeg:
function transformView() {
  var tableElements = document.getElementsByTagName('table') ;
  var table = tableElements[tableElements.length - 2] ;    table.cellSpacing = '0' 
  rows = table.getElementsByTagName("tr") ;
  var counter = 0
  for( i = 0; i < rows.length; i++) {
      rows[i].bgColor = (i  ? 'yellow' : '') ;
  }
}
ved rows[i].bgColor = osv..
vil jeg gerne kunne tilføje fx. rows[i].border-color =
Avatar billede thesurfer Nybegynder
21. november 2005 - 19:57 #4
Har jeg misforstået det her, eller vil du lave gul kant (border) på alle rows, i den anden sidste tabel?

/theSurfer
Avatar billede mmmtm Nybegynder
21. november 2005 - 20:28 #5
Ikke misforstået, det er lige præcis det jeg vil :-)
Avatar billede thesurfer Nybegynder
21. november 2005 - 20:52 #6
Og du ved ikke hvor mange tabeller der er på siden? Dvs, det kan variere?

/theSurfer
Avatar billede mmmtm Nybegynder
21. november 2005 - 21:42 #7
Jeg ved hvor mange der ligger før og efter, og umiddelbart er det nok at sætte border på den den næstsidste tabel.
Avatar billede mmmtm Nybegynder
21. november 2005 - 21:45 #8
..jeg har sådan set bare brug for syntaksen til at sætte border-color ind sammen med rows[i].bgColor...
Avatar billede thesurfer Nybegynder
21. november 2005 - 21:49 #9
Jeg kan ikke lige finde koden til border-color, i JavaScript.. det er som om, at det ikke eksisterer.. måske skal man bruge noget i stil med border-top, border-bottom, border-left og border-right (dvs, delt op).

ellers kan du lave en CSS klasse:

<style type="text/css">
.gul { broder: 1px solid #FFFF00; }
</style>

og bruge <tr class="gul">

Hjælper det?

/theSurfer
Avatar billede mmmtm Nybegynder
21. november 2005 - 21:54 #10
Nej, desværre. Jeg har ikke mulighed for at bruge css på den måde. Jeg skal tilgå tabellen via javascriptet, så det kun er den det vil gælde. Men kan jeg egenligt ikke i scriptet sætte en class på tabellen ?
Avatar billede thesurfer Nybegynder
21. november 2005 - 22:09 #11
Ja, du kan ændre den via className:

<style type="text/css">
.gul { broder: 1px solid #FFFF00; }
</style>

function transformView() {
  var tableElements = document.getElementsByTagName('table') ;
  var table = tableElements[tableElements.length - 2] ;    table.cellSpacing = '0' 
  rows = table.getElementsByTagName("tr") ;
  var counter = 0
  for( i = 0; i < rows.length; i++) {
      rows[i].className = 'gul';
  }
}


Men at ændre class midt i det hele, anbefales ikke, da browseren skal beregne hele siden igen..

/theSurfer
Avatar billede thesurfer Nybegynder
21. november 2005 - 22:22 #12
Sådan her, måske?:

function doit() {
/**/
  var tableElements = document.getElementsByTagName('table') ;
  var table = tableElements[tableElements.length - 2] ;
  table.className = 'gul'  ;
/**
  rows = table.getElementsByTagName("tr") ;
  var counter = 0
  for( i = 0; i < rows.length; i++) {
      rows[i].className = 'gul';
  }
/**/
}
Avatar billede roenving Novice
21. november 2005 - 22:33 #13
CSS-properties, som indeholder bindestreger skal omskrives til brug i javascript, da javascript-identifiers _ikke_ må indeholde dem ...

Det gøres ved at benytte interCap-metoden (som iøvrigt giver gyldige identifiers i alle relevante sprog til websider !-), hvor du så sletter bindestregen og gør det næste bogstav stort, altså:

border-width --> borderWidth
border-color --> borderColor og f.eks.
border-top-width --> borderTopWidth

-- men css-propertyen border-width må ikke skrives på anden måde i css !o]
Avatar billede thesurfer Nybegynder
21. november 2005 - 22:50 #14
Jeg har ellers prøvet borderColor.. men det var med: rows[i].borderColor .. det burde nok have været ved tabellen:

table.borderColor = '#ffff00';

/theSurfer
Avatar billede thesurfer Nybegynder
21. november 2005 - 22:52 #15
..nope.. virker ikke..?

roenving> Komplet eksempel, tak :-)

/theSurfer
Avatar billede roenving Novice
21. november 2005 - 22:54 #16
rows[i].style.borderColor !-)
Avatar billede thesurfer Nybegynder
21. november 2005 - 22:57 #17
Følgende kode virker hverken i IE 6 SP2 eller Opera v8.5:

  var tableElements = document.getElementsByTagName('table') ;
  var table = tableElements[tableElements.length - 2] ;
    table.cellSpacing = '0';
  rows = table.getElementsByTagName("tr") ;
  var counter = 0
  for( i = 0; i < rows.length; i++) {
      rows[i].style.borderColor = '#ffff00';
  }

/theSurfer
Avatar billede roenving Novice
21. november 2005 - 23:23 #18
-- hrm, en row har vel heller ikke en border, da det jo er cellerne, der renderes ...

-- så hvad med at prøve:

  var tableElements = document.getElementsByTagName('table') ;
  var table = tableElements[tableElements.length - 2] ;
  cells = table.getElementsByTagName("td") ;
  for( i = 0; i < cells.length; i++) {
      cells[i].style.borderColor = '#ff0';
      cells[i].style.borderWidth = '2px 0';
      cells[i].style.margin = '0';
  }
  table.style.borderCollapse = 'collapse';
  table.style.border = '2px solid #ff0';
Avatar billede mmmtm Nybegynder
22. november 2005 - 21:29 #19
roenving > smid et svar, du fortjener point som vanligt.
thesurfer > tak for forsøget.
:-)
Avatar billede roenving Novice
22. november 2005 - 21:38 #20
Vi kan vel dele !-)

-- velbekomme '-)
Avatar billede mmmtm Nybegynder
22. november 2005 - 23:37 #21
thesurfer > smid et svar
Avatar billede thesurfer Nybegynder
23. november 2005 - 10:22 #22
OK, la' gå :-)

/theSurfer
Avatar billede thesurfer Nybegynder
23. november 2005 - 12:15 #23
Takker for points :-)

/theSurfer
Avatar billede roenving Novice
23. november 2005 - 13:39 #24
Ditto herfra ;~}
Avatar billede mmmtm Nybegynder
23. november 2005 - 22:54 #25
Det er mig der takker, for god hjælp :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester