Avatar billede hoppe11 Nybegynder
04. august 2009 - 22:48 Der er 4 kommentarer og
1 løsning

returnere alle HTML elementer i et element

jeg har et div element og vil gerne have returneret samtlige HTML elementer som findes i det pågældende div element?
Avatar billede hoppe11 Nybegynder
04. august 2009 - 23:17 #1
jeg vil slette alle html elementer i et element på nær et enkelt img element som også er det eneste af sin slags

i mit script her er det ikke altid at alle elementer slettes.. nogle gange skal funktionen køres et par gange

function clear_tagelms(elm)
{
    if(elm.hasChildNodes())
    {
        str = '';
        var nodes = elm.childNodes;
        for(var key in nodes)
        {
            str += key+' = '+nodes[key].tagName+', ';
           
            if(nodes[key].tagName && nodes[key].tagName != 'IMG')
            {
                elm.removeChild(elm.childNodes[key]);
            }
        }
       
        alert(str);
    }
}
Avatar billede hoppe11 Nybegynder
04. august 2009 - 23:22 #2
fuck det.. laver en løsning hvor jeg kan rydde et helt element for alle childnodes i stedet :)
Avatar billede roenving Novice
04. august 2009 - 23:30 #3
Måske:

function clear_tagelms(elm)
{
  var pic, e;
  while(e = elm.firstChild){
    if(e.tagName && e.tagName == "img")
      pic = elm.removeChild(e);
    else
      e.removeChild(e);
  }
  elm.appendChild(pic);
}

-- absolut utestet !-)
Avatar billede roenving Novice
04. august 2009 - 23:30 #4
Ups ...

    else
      elm.removeChild(e);
Avatar billede olebole Juniormester
04. august 2009 - 23:58 #5
<ole>

I ikke XHTML sammenhæng returneres tagName/nodeName i upperCase, så:
    if(e.tagName && e.tagName.toLowerCase() == "img")

/mvh
</bole>
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

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