Auto increment numbers in div id javascript

前端 未结 2 1042
南方客
南方客 2021-01-07 15:56

can somebody please help me? How to add auto increment number in div ID using javascript? I have four divs and I\'d like to have them automatically numbered (box1, box2, box

相关标签:
2条回答
  • 2021-01-07 16:20

    There is an error in your code: <= should be only < if you are starting from 0!

    One possible solution is to use the node.setAttribute("attributeName", "attributeValue") method in order to set / change the attribute (in this case the id) of an element:

    <div id="box" class="something">A</div>
    <div id="box" class="something">B</div>
    <div id="box" class="something">C</div>
    <div id="box" class="something">D</div>
    
    <script>
      var list = document.getElementsByClassName("something");
      for (var i = 0; i < list.length; i++) {
       list[i].setAttribute("id", "box" + i);
      }
    </script>
    

    The output is:

    <div id="box0" class="something"></div>
    <div id="box1" class="something"></div>
    <div id="box2" class="something"></div>
    <div id="box3" class="something"></div>
    

    If it is alright to use JS libraries (for example jQuery), then the transformation could be written even more succinctly:

    $(".something").each(function(index) {
        $(this).attr("id", this.id + index);
    });
    

    This code leads to the same output as above.

    The commented jQuery code:

    // find all elements with the class "something"
    $(".something")
    // call for each one of them 
        .each(
    // the function with parameter = current index
        function(index) {
    // take the current element
        $(this)
    // and set the attribute id to the new value
        .attr("id", this.id + index);
    });
    
    0 讨论(0)
  • 2021-01-07 16:28

    set id property

    var list = document.getElementsByClassName("something");
    for (var i = 0; i < list.length; i++) {
        list[i].id = "box" + (i + 1);
    }
    
    0 讨论(0)
提交回复
热议问题