|
| Dynamisk tilføjelse til tabel Fra : Hans Larsen |
Dato : 25-01-07 22:55 |
|
Hej NG,
Jeg er i gang med at lave en simpel web-applikation, og er i den
forbindelse støt på et problem.
I applikationen skal brugeren kunne indsætte nye rækker i en tabel. dvs.
der skal tilføjes et "tr"-element til tabellen, og til det element, skal
der tilføjes en række "td"-elementer.
Jeg har allerede lavet en funktion, som kan gøre dette i firefox, men
når jeg prøver den i internet explorer, virker den ikke. Nedenfor, har
jeg lavet et eksempel på, hvordan min funktion fungerer. Er der nogen
som har en idé til, hvordan jeg også får den til at virke i internet
explorer?
Eksempel:
<html>
<head>
<script>
function tryk() {
var table = document.getElementById('table')
var nytr = document.createElement('tr')
var td1 = document.createElement('td')
td1.innerHTML = 'noget'
var td2 = document.createElement('td')
td2.innerHTML = 'Andet'
nytr.appendChild(td1)
nytr.appendChild(td2)
table.appendChild(nytr)
}
</script>
</head>
<body>
<input type="BUTTON" value="tryk" onclick="tryk()">
<table id="table" border="1">
<tr>
<th>overskrift 1</th>
<th>overskrift 2</th>
</tr>
</table>
</body>
</html>
Med venlig hilsen
Hans
| |
Jens Gyldenkærne Cla~ (25-01-2007)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 25-01-07 23:37 |
|
Hans Larsen skrev:
> Jeg har allerede lavet en funktion, som kan gøre dette i
> firefox, men når jeg prøver den i internet explorer, virker
> den ikke. Nedenfor, har jeg lavet et eksempel på, hvordan min
> funktion fungerer.
Giv hellere et link til din side - så er det meget lettere at
hjælpe.
Se evt. < http://infimum.dk/HTML/hjaelpmig.html>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Hans Larsen (26-01-2007)
| Kommentar Fra : Hans Larsen |
Dato : 26-01-07 08:14 |
|
Jens Gyldenkærne Clausen skrev:
> Giv hellere et link til din side - så er det meget lettere at
> hjælpe.
>
> Se evt. < http://infimum.dk/HTML/hjaelpmig.html>
Det må du undskylde, men jeg kan desværre ikke linke til den side, hvor
problemet oprindeligt opstod, da det er en intern side, men jeg har et
link til det eksempel, hvor jeg har genskabt problemet:
http://flydeprut.dk/test.php
| |
Lasse Reichstein Nie~ (27-01-2007)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 27-01-07 17:46 |
|
Hans Larsen <hjl@flydeprut.dk> writes:
> Det må du undskylde, men jeg kan desværre ikke linke til den side,
> hvor problemet oprindeligt opstod, da det er en intern side, men jeg
> har et link til det eksempel, hvor jeg har genskabt problemet:
>
> http://flydeprut.dk/test.php
Det er også fint. Faktisk er det ofte bedre at have isoleret problemet
(og det hjælper ikke så sjældent til at man selv finder en løsning
imens :)
Dit problem er at du forsøger at tilføje en TR direkte til tabellen.
Det kan man ikke. TR'er skal være inde i et TBODY-element (eller THEAD
eller TFOOT).
Prøv at ændre:
table.appendChild(nytr);
til
var tbody = table.getElementsByTagName("tbody")[0];
tbody.appendChild(nytr);
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL: http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
| |
Erik Ginnerskov (27-01-2007)
| Kommentar Fra : Erik Ginnerskov |
Dato : 27-01-07 21:46 |
|
Lasse Reichstein Nielsen wrote:
> Dit problem er at du forsøger at tilføje en TR direkte til tabellen.
> Det kan man ikke. TR'er skal være inde i et TBODY-element (eller THEAD
> eller TFOOT).
Det er ganske vist ikke valid kode ikke at have en tbody, når man har en
thead. Men browserne plejer da at være ligeglade med den detalje.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk
| |
Martin Mouritzen (28-01-2007)
| Kommentar Fra : Martin Mouritzen |
Dato : 28-01-07 20:24 |
|
On Sat, 27 Jan 2007 21:46:10 +0100, "Erik Ginnerskov"
<erik@donotspammeplease.invalid> wrote:
>> Dit problem er at du forsøger at tilføje en TR direkte til tabellen.
>> Det kan man ikke. TR'er skal være inde i et TBODY-element (eller THEAD
>> eller TFOOT).
>
>Det er ganske vist ikke valid kode ikke at have en tbody, når man har en
>thead. Men browserne plejer da at være ligeglade med den detalje.
Men det betyder ret meget når man tilgår tabeller via. JavaScript,
nogen browsere kan godt acceptere at man ikke går gennem tbody/thead,
mens andre ikke accepterer det. Men alle fungerer med at gå gennem
tbody/thead, så det er smartest at vænne sig til.
--
Med venlig hilsen,
Martin Mouritzen.
http://www.siteloom.dk
| |
Jens Gyldenkærne Cla~ (28-01-2007)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 28-01-07 22:34 |
|
Erik Ginnerskov skrev:
> Det er ganske vist ikke valid kode ikke at have en tbody, når
> man har en thead.
På den eksempelside der linkes til, angives hverken thead eller
tbody i html-koden - hvad der er helt legalt.
Pointen er at tbody er et af de få elementer hvor både start- og
slut-koden (altså <tbody> og </tbody>) kan udelades.
Selv om man ikke eksplicit angiver tbody i en tabel, indgår den
stadig som element i DOM-træet - og browseren har ingen problemer
med at placere den, fordi den ved at der skal være en tbody mellem
table og tr.
Et andet eksempel på frivillig startkoder er grundelementerne i et
html-dokument - html, head og body, der alle må udelades.
Se fx følgende helt valide strict-dokument:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>Ultrakort html-dokument</title>
<p>Et kort, validt (men dårligt skrevet) html-dokument.
Selv om hverken html, head eller body er skrevet ind i html-koden,
indgår alle tre elementer i DOM-træet for dokumentet (tjek evt. med
DOM Inspector i Firefox). Det er samme princip der gælder for
tbody. I praksis er langt de fleste dog enige om at angive html,
head og body med både start og slutkoder, mens det omvendt er meget
almindeligt at undlade at angive tbody.
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information
| |
Hans Larsen (27-01-2007)
| Kommentar Fra : Hans Larsen |
Dato : 27-01-07 23:32 |
|
Lasse Reichstein Nielsen skrev:
> Dit problem er at du forsøger at tilføje en TR direkte til tabellen.
> Det kan man ikke. TR'er skal være inde i et TBODY-element (eller THEAD
> eller TFOOT).
>
> Prøv at ændre:
> table.appendChild(nytr);
> til
> var tbody = table.getElementsByTagName("tbody")[0];
> tbody.appendChild(nytr);
>
> /L
Ahh, rigtig mange tak. :)
Det var dejligt, at få løst det problem.
| |
|
|