unhide elements on click

2019-09-21 02:19发布

问题:

I've got a little issue with JavaScript. I am not sure if my code not work, or if I am about lunch it wrong way.

<title>Untitled Document</title>
<script language="javascript">
function Unhide()
{
 var item = document.getElementsByTagName('p');
 for (x; x > item.length; x+1)
 {
     if (item.item(x).getAttribute('hidden') == ('true'))
     {
        item.item(x).setAttribute('hidden', 'false');
     }
     else
     {
         item.item(x).setAttribute('hidden', 'true');
     }
 }
}
</script>
</head>

<body>
<div class="Level1">
 <p class="Menu"><a href=".\Index.html">Home</a></p>
  <div class="Level2">
   <p class="Menu"><a href=".\Artykol1.html">Artykół 1</a></p>
   <p class="Menu"><a href=".\Artykol2.html">Artykół 2</a></p>
   <p class="Menu"><a href=".\Artykol3.html">Artykół 3</a></p>
   <p class="Menu"><a href=".\Autorska.html">Artykóły Autorskie</a></p>
  </div>   
 <p class="Menu"><a href=".\Dziennik.html">Dziennik</a></p>
 <p class="Menu"><a href=".\Archiwum.html">Archiwum</a></p>
 <div class="Level2">
  <p class="Menu"><a onclick="Unhide()">Ostatni Tydzień</a></p>
  <div class="Level3">
   <p class="Menu" hidden="true"><a href=".\Archiwum\OstatniTydzien\Art1_Autor.html">Art1</a></p>
   <p class="Menu" hidden="true"><a href=".\Archiwum\OstatniTydzien\Art2_Autor.html">Art2</a></p>
  </div>
 </div>
</div>
</body>

Could you give me any tip, how to figure it out?

回答1:

http://davidwalsh.name/html5-hidden

<script>
function Unhide()
{
 var items = document.getElementsByTagName('p');
 for ( var x = 0; x < items.length; x++)
 {
     var item = items[x]; 
     if (item.getAttribute('hidden') == 'true')
     {
        item.setAttribute('hidden', 'false');
     }
     else
     {
         item.setAttribute('hidden', 'true');
     }
 }
}
</script>

<div class="Level1">
 <p class="Menu"><a href=".\Index.html">Home</a></p>
  <div class="Level2">
   <p class="Menu"><a href=".\Artykol1.html">Artykół 1</a></p>
   <p class="Menu"><a href=".\Artykol2.html">Artykół 2</a></p>
   <p class="Menu"><a href=".\Artykol3.html">Artykół 3</a></p>
   <p class="Menu"><a href=".\Autorska.html">Artykóły Autorskie</a></p>
  </div>   
 <p class="Menu"><a href=".\Dziennik.html">Dziennik</a></p>
 <p class="Menu"><a href=".\Archiwum.html">Archiwum</a></p>
 <div class="Level2">
  <p class="Menu"><a onclick="Unhide()">Ostatni Tydzień</a></p>
  <div class="Level3">
   <p class="Menu" hidden="true"><a href=".\Archiwum\OstatniTydzien\Art1_Autor.html">Art1</a></p>
   <p class="Menu" hidden="true"><a href=".\Archiwum\OstatniTydzien\Art2_Autor.html">Art2</a></p>
  </div>
 </div>
</div>


回答2:

function Unhide()
{
 var items = document.getElementsByTagName('p');
 for (var x in items)
 {
     if (x.style.display == 'none')
     {
        x.style.display = '';
     }
     else
     {
         x.style.display = 'none';
     }
 }
}

items is an array of elements. iterate through them with a for loop and set style.display property.

Reference: http://www.w3schools.com/jsref/prop_style_display.asp