Avatar billede dotnewbi Juniormester
01. juli 2009 - 14:43 Der er 4 kommentarer og
1 løsning

Problem med getElementsByTagName(tag)

Hej Eksperter! Er der nogle der kan se hvorfor dette script fejler fejlen siger at "var elm is null" ?

function getElementsByClassName(className, tag){
    var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
    var tag = tag || "*";
    var elm = document.getElementsByTagName('body')[0];
    var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
    var returnElements = [];
    var current;
    var length = elements.length;
    for(var i=0; i<length; i++){
        current = elements[i];
        if(testClass.test(current.className)){
            returnElements.push(current);
        }
    }
    alert( returnElements.length );
}
Avatar billede roenving Novice
01. juli 2009 - 15:43 #1
Hvad bruger du overhovedet body til ?-)

Umiddelbart ser det ud til at du laver noget i overskud ...

-- en anden (næsten identisk !-) måde:

<script type="text/javascript">
// Kaldes med getElementsByClassName("class","tagName","rootElement"); -- kun "class" er obligatorisk
function getElementsByClassName(c,t,e){
  switch(getElementsByClassName.arguments.length){
    case 0:
      return null;
    case 1:
      t = '*';
      e = document;
      break;
    case 2:
      e = document;
  }
  c = new RegExp("\\b" + c + "\\b");
  var r = [],tags = e.getElementsByTagName(t);
  for(i=0,im=tags.length;im>i;i++){
    if(tags[i].className.match(c))
      r.push(tags[i]);
  }
  return (r.length>0)?r:null;
}
</script>
Avatar billede dotnewbi Juniormester
01. juli 2009 - 16:01 #2
Jeg kan godt få funktionen når jeg "kun" sætter elm = document; men selv om at jeg har 7 div tags i roden af <body> med den class jeg sender til funktionen så er listen tom ?
Avatar billede dotnewbi Juniormester
01. juli 2009 - 16:01 #3
og din funktion retuner også 0 ?
Avatar billede dotnewbi Juniormester
01. juli 2009 - 16:03 #4
mit kald:

getElementsByClassName("target");

body:

<body>

<div id="target_webpart3" class="target" onclick="java script:EndMove(this.parentNode.id,this.id)"></div>

</body>
Avatar billede dotnewbi Juniormester
06. juli 2009 - 12:36 #5
Lukker!
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