jQuery count child divs

Viewed 106
<ul>
    <li class="title" data-count="1" data-time="9000" data-title="unicorn">
    <li class="title" data-count="2" data-time="2000" data-title="giraffe">
    <li class="title" data-count="3" data-time="3000" data-title="dog">
    <li class="title" data-count="4" data-time="7000" data-title="cat">
    <li class="title" data-count="5" data-time="1000" data-title="dinosaur">
</ul>

As you can see the data-count="/" is just a counter. Do you have any ideas to automate this with jQuery, I haven't any ideas. Thanks for answers guys.

I think a variable could work with something like this:

var DivCount = X
$('.title').attr('data-count', DivCount);

PS: I don't ask only for free code, suggestions are welcome!

4 Answers

Try this:

var a = $("ul li");

jQuery.each(a, function(i, v) {
  $(v).attr("data-count", i + 1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li class="title" data-time="9000" data-title="unicorn">A</li>
    <li class="title" data-time="2000" data-title="giraffe">B</li>
    <li class="title" data-time="3000" data-title="dog">C</li>
    <li class="title" data-time="7000" data-title="cat">D</li>
    <li class="title" data-time="1000" data-title="dinosaur">E</li>
</ul>

Documentation for jQuery.each

Clean one...

for(var i = 1; i <= $('.title').length; i++) {
    $('.title').attr('data-count', i);
}

... another one...

$('.title').each(function(i, element) {
    $(element).attr('data-count', i + 1);
});

Pay attention on using node names as selectors, in case you have other lists.

You can use lenght propertie to count how many elements there are inside a div:

console.log($("ul > li.title").length)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li class="title" data-count="1" data-time="9000" data-title="unicorn">
    <li class="title" data-count="2" data-time="2000" data-title="giraffe">
    <li class="title" data-count="3" data-time="3000" data-title="dog">
    <li class="title" data-count="4" data-time="7000" data-title="cat">
    <li class="title" data-count="5" data-time="1000" data-title="dinosaur">
</ul>

you can directly check

$('li.title').length

It will give you li with class 'title' count

Related