innerHTML

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • twenty
    Medlem
    • 2013-01-31
    • 3

    #1

    innerHTML

    Jag är ny på det här med javascript och har försökt mig på innerHTML, men det går inte så bra hehe. Har läst lite på internet och än så länge så ser min kod ut såhär, men den fungerar inte. Var har jag gjort för fel?

    HTML Code:
    <ul id="meny">
      <li><p class="title">Title 1</p>
        <ul>
          <li>
            <p id="subtitle1"></p>
          </li>
        </ul>
      </li>
    </ul>
    PHP Code:
    function titles()
    {
      var nextElement = next(this);
      if(nextElement.style.display == "none")
      {
        nextElement.style.display = "block";
      }
      else
      {
        nextElement.style.display = "none"; 
      }
    }
    
    function init()
    {
    
      var title = document.getElementsByTagName("p");
      for(var i = 0; i < title.length; i++)
      { 
        if(title[i].className == "title")
        {
          title[i].onclick = titles;
        }  
      }
     
      var subtitle = document.getElementsByTagName("p");
      var show = document.getElementByClass('subtitle1');
      
      var subtitle1 = document.getElementsByTagName("p");
      for(var i = 0; i <subtitle1.length; i++)
      { 
        if(subtitle1[i].Id == "subtitle1")
        {
          show.innerHTML = "Detta är min text";    
          subtitle1[i].parentNode.getElementsByTagName("p")[0].style.display = 'none';
        } 
      }
       
    } 
    
  • voigtann1
    Forumvärd
    • 2001-06-14
    • 8810

    #2
    när kör du init metoden? Vad är det som inte fungera?

    document.getElementByClass('subtitle1');

    du menar nog getElementById
    "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

    Comment

    • drew
      Medlem
      • 2007-03-12
      • 748

      #3
      Eller getElementsByClassName
      http://tumba25.net

      Comment

      • voigtann1
        Forumvärd
        • 2001-06-14
        • 8810

        #4
        Originally posted by drew
        Eller getElementsByClassName
        Förutom att html koden är det ett ID och stödet för det är ju inte det mest optimala (ie9+)

        Sen saknar man funktionen next vad gör den?
        "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

        Comment

        • plekanec
          Medlem
          • 2010-12-28
          • 28

          #5
          Har du kollat något på jquery? Mycket snyggare och enklare imo.

          Comment

          • drew
            Medlem
            • 2007-03-12
            • 748

            #6
            Originally posted by voigtann1
            Förutom att html koden är det ett ID och stödet för det är ju inte det mest optimala (ie9+)
            Ok, sorry missade den detaljen.
            http://tumba25.net

            Comment

            • twenty
              Medlem
              • 2013-01-31
              • 3

              #7
              Originally posted by voigtann1
              Förutom att html koden är det ett ID och stödet för det är ju inte det mest optimala (ie9+)

              Sen saknar man funktionen next vad gör den?
              Oj haha, Id ska det såklart vara! Men det fungerar inte ändå.
              När jag klickar på "Titel 1" så visas min underrubrik, men min text show.innerHTML = "Detta är min text"; syns inte. Har jag skrivit koden fel eller kanske lagt koden på fel ställe?

              Kanske lättare att se vad som är fel om jag skriver hela min kod!
              PHP Code:
              function titles() 
              { 
                var nextElement = next(this); 
                if(nextElement.style.display == "none") 
                { 
                  nextElement.style.display = "block"; 
                } 
                else 
                { 
                  nextElement.style.display = "none";  
                } 
              } 
              
              function init() 
              { 
              
                var title = document.getElementsByTagName("p"); 
                for(var i = 0; i < title.length; i++) 
                {  
                  if(title[i].className == "title") 
                  { 
                    title[i].onclick = titles; 
                  }   
                } 
                
                var subtitle = document.getElementsByTagName("p"); 
                var show = document.getElementById('subtitle1'); 
                 
                var subtitle1 = document.getElementsByTagName("p"); 
                for(var i = 0; i <subtitle1.length; i++) 
                {  
                  if(subtitle1[i].Id == "subtitle1") 
                  { 
                    show.innerHTML = "Detta är min text";     
                    subtitle1[i].parentNode.getElementsByTagName("p")[0].style.display = 'none'; 
                  }  
                } 
                  
              }  
              
              window.onload = init;
              
              
              function next(elem) 
              {
                  do 
                  {
                      elem = elem.nextSibling;
                  } 
                  while (elem && elem.nodeType != 1);
                  return elem;               
              } 
              

              Comment

              • twenty
                Medlem
                • 2013-01-31
                • 3

                #8
                Originally posted by plekanec
                Har du kollat något på jquery? Mycket snyggare och enklare imo.
                Ja det har jag, men lyckades inte få det till att fungera som jag ville.

                Comment

                • voigtann1
                  Forumvärd
                  • 2001-06-14
                  • 8810

                  #9
                  din Kod säger att nextsibling dvs det bli din ul lista som skall visas och döljas, men du säger i din andra kod att det är paragraf (#subtitle1) är den som skall döljas.

                  jQuery är betydligt enklare om du är mer van med CSS

                  Ja det har jag, men lyckades inte få det till att fungera som jag ville.
                  Och ren Javascript har fungerat bättre?
                  "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                  Comment

                  • voigtann1
                    Forumvärd
                    • 2001-06-14
                    • 8810

                    #10
                    Originally posted by twenty
                    Oj haha, Id ska det såklart vara! Men det fungerar inte ändå.
                    När jag klickar på "Titel 1" så visas min underrubrik, men min text show.innerHTML = "Detta är min text"; syns inte. Har jag skrivit koden fel eller kanske lagt koden på fel ställe?
                    det gör den men du säger också att p elementet skall döljas, det du vill göra är något i stil med: http://jsfiddle.net/4vjP4/1/ gissar jag (och jQuery version: http://jsfiddle.net/4vjP4/2/ )
                    "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                    Comment

                    Working...