Avatar billede kla Nybegynder
21. april 2005 - 20:15 Der er 8 kommentarer og
1 løsning

Hvorfor kan jeg ikke se denne tabel

Hvis jeg laver denne kode ... så er min alert nederst giver mig bare blank???? hvorfor det ??? håber nogle kan give mig et fornuftigt svar derpå!

    oTable = document.createElement('TABLE');
    oTable.setAttribute('border', '0');
    oTable.setAttribute('width', '100%');
    oTable.setAttribute('cellspacing', '0px');
    oTable.setAttribute('cellpadding', '0px');
   
    oTB = document.createElement('tbody'); 
   
    alert(oTable.innerHTML);
Avatar billede busschou Praktikant
21. april 2005 - 20:54 #1
Jamen laver du ikke bare en tabel
Sætter div attributter
Og så beder du om at give en udskrift på det html der er i den....uden at have sat den html?
Avatar billede olebole Juniormester
21. april 2005 - 21:06 #2
<ole>

Der er ikke nogen innerHTML i tabellen, før tbody'en er indsat:

oTable = document.createElement('TABLE');
oTable.setAttribute('border', '0');
oTable.setAttribute('width', '100%');
oTable.setAttribute('cellspacing', '0px');
oTable.setAttribute('cellpadding', '0px');

oTB = document.createElement('tbody');

oTable.appendChild(oTB);

alert(oTable.innerHTML);

/mvh
</bole>
Avatar billede olebole Juniormester
21. april 2005 - 21:08 #3
- og så må du i øvrigt ikke bruge enheder på cellspacing og cellpadding:

oTable = document.createElement('TABLE');
oTable.setAttribute('border', 0);
oTable.setAttribute('width', '100%');
oTable.setAttribute('cellspacing', 0);
oTable.setAttribute('cellpadding', 0);

oTB = document.createElement('tbody');

oTable.appendChild(oTB);

alert(oTable.innerHTML);
Avatar billede kla Nybegynder
22. april 2005 - 07:43 #4
Hej olebole :-) kunne godt bruge det du skrev... så hvis du vil svare får du de 30 point...
Avatar billede olebole Juniormester
22. april 2005 - 22:01 #5
Så takker jeg for points :)
Avatar billede kla Nybegynder
24. april 2005 - 18:43 #6
Hvis jeg kunne skyde et tillægsspørgsmål ind :-)

Hvordan kan det være at når jeg laver en radio-gruppe med nedenstående kode ... så kommer det fint frem i min tabel, men man kan ikke klikke på radio-gr. ?

    oTR = document.createElement('TR');
      oTD = document.createElement('TD');

      oTD.style.padding = 4;             
      oTD.setAttribute('valign','center');

        oInput = document.createElement('INPUT');
        oInput.setAttribute('type','radio');
        oInput.setAttribute('NAME','aftType');
        oInput.setAttribute('ID',id);
       
        oLabel = document.createElement('LABEL');
        oLabel.setAttribute('for',id);
        oLabel.style.cursor = 'hand';

        oText = document.createTextNode('  ' + text);
       
        oLabel.appendChild(oText);
     
      oTD.appendChild(oInput);
      oTD.appendChild(oLabel);


    oTR.appendChild(oTD);
Avatar billede olebole Juniormester
24. april 2005 - 22:02 #7
Ja, IE er en besynderlig browser, som det (også på dette punkt) kræver særbehandling ... den er alt andet end god til DOM  :o|

function bla(id, text) {
    var uA = navigator.userAgent.toLowerCase();
    var ie = (uA.indexOf("msie")!=-1 && uA.indexOf("opera")==-1);
    oTable = document.createElement('TABLE');
    oTable.setAttribute('border', 0);
    oTable.setAttribute('width', '100%');
    oTable.setAttribute('cellspacing', 0);
    oTable.setAttribute('cellpadding', 0);
   
    oTB = document.createElement('tbody');
    oTable.appendChild(oTB);

    oTR = document.createElement('TR');
      oTD = document.createElement('TD');

      oTD.style.padding = 4;             
      oTD.setAttribute('valign','center');

        oInput = (ie)? document.createElement('<input name="aftType">') : document.createElement('input');
        oInput.setAttribute('type','radio');
        oInput.setAttribute('name','aftType');
        oInput.setAttribute('id',id);
       
        oLabel = (ie)? document.createElement('<label for="'+id+'"></label>') : document.createElement('label');
        if (!ie) oLabel.setAttribute('for',id);
        oLabel.style.cursor = 'pointer';

        oText = document.createTextNode('  ' + text);
       
        oLabel.appendChild(oText);
     
      oTD.appendChild(oInput);
      oTD.appendChild(oLabel);

    oTR.appendChild(oTD);
   
    oTB.appendChild(oTR);
    document.body.appendChild(oTable);
    oTable.refresh()
}

window.onload = function() {
    bla(1234, "noget");
}

- se evt. her:
  http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/createelement.asp

- hvor de selv skriver om denne bug:
"Attributes can be included with the sTag as long as the entire string is valid HTML. You should do this if you wish to include the NAME attribute at run time on objects created with the createElement method.

Attributes should be included with the sTag when form elements are created that are to be reset using the reset method or a BUTTON with a TYPE attribute value of reset."

Du kan evt. teste med innerHTML for at se, hvad der egentlig bliver skrevet ud - med og uden dette 'hack'  :)
Avatar billede olebole Juniormester
24. april 2005 - 22:05 #8
*host-host* i min test har jeg brugt id=1234, hvilket naturligvis er noget vrøvl. En ID-attribut må ikke begynde med et tal. Det ændrer dog ikke ved det essentielle i problemet her  ;o)
Avatar billede kla Nybegynder
25. april 2005 - 07:54 #9
Jaja nu køre det da lidt bedre... hvis jeg tager din kode køre det bare, når jeg selv koder det ... virker label'en ikke.... :-( hvis jeg tager koden fra innerHTML og hardkoder virker det også fint... noglen idé ???

PS: hvis jeg gerne vil give dig nogle flere point hvordan gør jeg det nemmest???
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