Avatar billede morw Nybegynder
19. oktober 2003 - 20:48 Der er 8 kommentarer og
2 løsninger

Indsæt a og img tags med DOM samt removeChild

Hej

Jeg skulle lige lege lidt med DOM og har lige 2 spørgsmål:

1:
Jeg bruger følgende til at indsætte tekst i en celle:

dennetekst=document.createTextNode(celletekst);

Hvad hvis jeg vil indsætte tekst samt et link eller billede?


2:
Hvis jeg kalder removeChild() på et element der ikke findes går browseren i "stå". Er der en måde at checke om elementer findes og er gyldigt?
Avatar billede roenving Novice
19. oktober 2003 - 20:58 #1
1:
document.createElement("IMG")
document.createElement("A")

-- properties kan så tildeles, når du har tilknyttet det til et andet element (f.eks. en <TD> !-)

2:
elementObject.childNodes.length > 0 (NS6+, IE4-5)
elementObject.children.length > 0 (IE4+)

-- jeg mener også at IE6 understøtter childNotes, men jeg har ik' li'e haft fat i den ...

-- og det var hvad Javascript Bible havde !o]
Avatar billede roenving Novice
19. oktober 2003 - 20:59 #2
-- og hvis du skal finde et specifikt objekt kan du jo teste om det findes:
if(document.getElementById('Karl')){
...
}
Avatar billede morw Nybegynder
19. oktober 2003 - 21:48 #3
Hmm

Hvis jeg får en string med en masse forskellige tags er det godt som umuligt at dele det op og så bruge createElement. Jeg leder efter noget alá innerHTML der blot er crossbrowser kompetibelt.
Avatar billede roenving Novice
19. oktober 2003 - 22:06 #4
innerHTML: NS6+ og IE4+ ?-)
Avatar billede roenving Novice
19. oktober 2003 - 22:07 #5
Bruger selv innerHTML, da innerText ikke dur i de tidlige Gecko-maskiner !-)
Avatar billede casper_skovgaard Nybegynder
20. oktober 2003 - 09:21 #6
her er nogle eksempler på hvordan man bruger DOM til at tilføje elementer

    // Some text
    cell = document.createElement( "td");
    text = document.createTextNode("Some text is fine");
    cell.appendChild( text);
    trObj.appendChild( cell);

    // A field
    cell = document.createElement( "td");
    field = document.createElement("input");
    field.type = "text";
    field.size = "12";
    field.id = "myField_" + counter;
    field.name = "myField_" + counter;
    cell.appendChild( field);
    trObj.appendChild( cell);

    // Image
    cell = document.createElement( "td");
    img = document.createElement( "img");
    img.setAttribute( "src", "any.gif");
    cell.appendChild( img);
    trObj.appendChild( cell);

    // A link
    cell = document.createElement( "td");
    link = document.createElement( "a");
    link.setAttribute( "href", "java script:removeRow( " + counter + ");");
    text = document.createTextNode("Remove" + counter);
    link.appendChild( text);
    cell.appendChild( link);
    trObj.appendChild( cell);

    // Option field
    cell = document.createElement( "td");
    field = document.createElement( "select");
    option = document.createElement( "option");
    option.value = "Pay";
    option.text = "Default";
    field.add( option);
    option = document.createElement( "option");
    option.value = "Leave";
    option.text = "Other";
    field.add( option);
    field.id = "myOption_" + counter;
    field.name = "myOption_" + counter;
    cell.appendChild( field);
    trObj.appendChild( cell);
Avatar billede morw Nybegynder
20. oktober 2003 - 10:57 #7
ok, smid lige svar for point begge to
Avatar billede casper_skovgaard Nybegynder
20. oktober 2003 - 12:46 #8
:)
Avatar billede roenving Novice
21. oktober 2003 - 02:26 #9
Velbekomme '-)
Avatar billede roenving Novice
21. oktober 2003 - 09:44 #10
-- og tak for points ;~}
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