代码之家  ›  专栏  ›  技术社区  ›  donprecious iyeritufu

如何在jQuery和JavaScript中循环和设置DOM元素的内部内容?

  •  0
  • donprecious iyeritufu  · 技术社区  · 8 年前

    我在试着循环 divs 并设置 div 迪夫

    这是HTML 迪夫 迪夫 与班级 content-detail 属性数据的值。

    //the javascript code I used is this 
    
    $(function($) {
      for (var i of $(".item .content-detail")) {
        var container = document.querySelector($(i)[0]);
        var formData = $(i).attr("data-formdata");
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
    
    <div class="item">
      <div class="down-div"> </div>
      <div class="detail">
        <h4>Detail</h4>
        <div id="div_" class="content-detail" data-formdata="my Item">
    
        </div>
        <div class="text-center">
          <button class="btn btn-blue center"> SET !</button>
        </div>
      </div>
    </div>
    
    <div class="item">
      <div class="down-div"> </div>
      <div class="detail">
        <h4>Detail</h4>
        <div id="div_" class="content-detail" data-formdata="my Item">
    
        </div>
        <div class="text-center">
          <button class="btn btn-blue center"> SET !</button>
        </div>
      </div>
    </div>

    var container = document.querySelector($(i)[0]); 我不知道怎么弄到 jquery

    5 回复  |  直到 8 年前
        1
  •  1
  •   mchandleraz    8 年前

    $(function ($) {
        $(".item .content-detail").each(function(index, element) {
            element.text($(element).attr("data-formdata"))
        })
    });
    

    看看 .each() method

        2
  •  0
  •   Kiran Shahi Jonny    8 年前
    $(function($) {
        for (var i of $(".item .content-detail")) {
            //var container = document.querySelector($(i)[0]);
            var container = i;
            var formData = $(i).attr("data-formdata");
        }
    });
    

    我只是需要元素

        3
  •  0
  •   Barmar    8 年前

    如果要设置每个DIV的内容,则不需要 for 循环。这个 .text() 方法接受一个回调函数,它将在与选择器匹配的每个元素上被调用。返回值用作新内容。

    $(".item .content-detail").text(function() {
        return $(this).data("formdata");
    });
    
        4
  •  0
  •   suertang    8 年前

    这很管用。

    $(function($) {
        $(".item .content-detail").text(function(){
            return $(this).attr("data-formdata");
        })
    });
    
        5
  •  -1
  •   Ross Kelly    8 年前

    你不能像这样使用JS:

    [更新]

    function test() {
        var divs = document.getElementsByTagName("div");
        for (var i = 0; i < divs.length; i++) {
            var divsSub = divs[i].getElementById("div_").querySelectorAll(".content-detail");;
            for (var iS = 0; iS < divsSub.length; iS++) {                    
                var x = divsSub[iS].getAttribute("data-formdata");
                divsSub[iS].innerHTML = x;
            }
        }
    }