Jirka Kastan
Jirka Kastan

Reputation: 119

document.getElementsByClassName not working

Does anyone know why it isn't working?

I want it to show div odpoved when I click on div dotaz.

function ukaz(a) {
  var elements = document.getElementsByClassName(a);
  for (var i = 0; i < elements.length; i++) {
    elements[i].style.display = "block";
  }
}
<div class="dotaz" onClick="ukaz(odpoved)">
  <p>YOSODJDN</p>
  <span class="qanick">jirka</span>
  <span class="fafadown"><i class="arrow fa fa-angle-down" style="font-size:24px"></i></span>
</div>

<div class="odpoved" style="display:none">
  <p>ODPOVED</p>
  <span class="qanick">anetka</span>
</div>

Upvotes: 0

Views: 194

Answers (2)

Matthew Moore
Matthew Moore

Reputation: 866

onClick="ukaz(odpoved)" is attempting to call a function, using a variable - instead of a string - as an argument.

function ukaz(a) {
  var elements = document.getElementsByClassName(a);
  for (var i = 0; i < elements.length; i++) {
      elements[i].style.display = "block";
  }
}
<div class="dotaz" onClick="ukaz('odpoved')"> <!-- odpoved is a string, not a variable -->
  <p>YOSODJDN</p>
  <span class="qanick">jirka</span>
  <span class="fafadown">
    <i class="arrow fa fa-angle-down" style="font-size:24px"></i>
   </span>
</div>

<div class="odpoved" style="display:none">
  <p>ODPOVED</p>
  <span class="qanick">anetka</span> 
</div>

Upvotes: 1

Nandita Sharma
Nandita Sharma

Reputation: 13407

Use it like this, pass odpoved as a string

<div class="dotaz" onClick="ukaz('odpoved')">

<div class="dotaz" onClick="ukaz('odpoved')">
<p>YOSODJDN</p>
<span class="qanick">jirka</span>
<span class="fafadown"><i class="arrow fa fa-angle-down" style="font- 
size:24px"></i></span>
</div>

<div class="odpoved" style="display:none">
<p>ODPOVED</p>
<span class="qanick">anetka</span> 
</div>


<script>
function ukaz(a) {
var elements = document.getElementsByClassName(a);
for (var i = 0; i < elements.length; i++) {
elements[i].style.display = "block";
}
}
</script>

Upvotes: 2

Related Questions