10. marts 2004 - 00:13Der er
9 kommentarer og 1 løsning
table.insertRow eller lignende på IE / Mac
HAJHAJ
Jeg skal smide nogle rækker i en tabel på følgende måde:
// Find tabel var myTable = document.getElementById("myTable");
// Find den rigtige række i tabellen var placeholderRow = document.getElementById("placeholderRow"); var placeholderIndex = placeholderRow.rowIndex;
// Skab ny række i tabellen på den ønskede placering myRow = myTable.insertRow(placeholderIndex);
// Skab ny celle var myCell = document.createElement("td"); myCell.innerText = "Succes!";
// Tilføj den nye celle til rækken myRow.appendChild(myCell);
Det virker umiddelbart fint på PC (IE, NS, Mozilla) og på NS 7 til Mac, men IE 5.2 på Mac vil ikke være med: Den opretter rækken og cellerne fint, men de ender ude til højre for tabellen istedet for under hinanden som de burde.
Er der nogen der har et fix til ovenstående eller kan komme på en anden måde at gøre det samme på, som virker i v5+ browsere?
Jeg har eksperimenteret lidt med at skabe et TR-objekt og sige table.appendChild(TR), men problemet er at rækken skal tilføjes på en bestemt position i tabellen ("placeholderRow").
-- dog har jeg haft den irriterende oplevelse, at IE uopfordret kreerede et tbody-element, som kastede sig ind imellem, så de løsninger jeg har fået til at fungere, har måttet være à la:
Alrighty, det ser ud til, at insertBefore() var en lille succeshistorie: Rækken bliver nu ploppet ind på det rigtige sted i tabellen. Woohoo!
Mine trængsler stopper nu ikke der: Det jeg i virkeligheden prøver at gøre er at tilføje 6 celler til rækken, hvoraf to af dem skal spænde over to kolonner. cell1.colSpan = 2 virker storartet - bortset lige fra vores gode ven IE 5.2 på Mac, som ser ud til helt at ignorere colSpan attributten. Det er vel ikke noget du har en løsning på i ærmet? :)
Anyways, nu skal jeg jeg ikke hijacke spørgsmålet over i noget helt andet - foreløbig tak for hjælpen, smid et svar så du kan få dine point.
Hmm, ikke så stor succes som først antaget :( Jeg har droppet colSpan'en, men tabellen går stadig i stykker. Jeg nøkker videre med det - hvis du har en lys idé så sig endelig frem, men bare glem colSpan-spørgsmålet.
Jep, den er jeg med på - cellerne bliver også skabt fint nok, men tabellen går helt i stykker af det. Det må have noget at gøre med den overdrevet komplicerede tabel jeg har gang i, for det virker fint med en enkel tabel med bare et par rækker. jeg må have ryddet lidt op i den.
Bonusspørgsmål (fordi du ikke har svaret endnu :) - er det tilladft at placere en span her: <table> <span> <tr> <td></td> </tr> <span> </table>
Tænkte nok den ikke var helt god - mit problem er, at jeg sætter rækkerne ind med et <asp:Label> tag, som i html'en bliver renderet som et <span> tag. Jeg må på jagt efter en workaround.
Det er på server-siden det sker, ikke hos klienten: Jeg har forskellige grupper html i Label tags, som så bliver renderet eller ej afhængigt af fx. bruger-input. Jeg er kommet om den nu, men det ville være rart hvis Microsoft havde tænkt i lidt mere standard-overholdende baner.
Synes godt om
Ny brugerNybegynder
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.