Can not see the first element of "getElementsByClassName"

- 1 answer

Ad

I have this structure in my html:

<div class="miejsce">
<div class="blok3">
1
</div>
<div class="blok3" id="x">
2
</div>
<div class="blok3">
3
</div>
<div class="blok3">
4
</div>
</div>

<div class="miejsce">
<div class="blok3">
1
</div>
<div class="blok3">
2
</div>
<div class="blok3">
3
</div>
<div class="blok3" id="x">
4.
</div>
</div>

And I want to add parameter display: block to first elemets of divs with class "miejsce". I used for this getElementsByClassName and 'for' loop. See my JS:

var miejsca = document.getElementsByClassName('miejsce');

for(var i=0; i<miejsca.length; i++)
{
    alert("work2");
    miejsca[i].first().css('display', 'block');
}

Alert "work" was shown only once so problem is probably with:

miejsca[i].first().css('display', 'block');

Do you see any mistakes in my code? Please explain.

Ad

Answer

Ad

jQuery functions are not directly available on DOM elements. You need to wrap them in a jQuery object.

You can simplify all your code to this

$('.miejsce div:first-child').css('display', 'block');
Ad
source: stackoverflow.com
Ad