javascript - 为什么 JQuery 不在每次迭代时创建一个新的 div?

标签 javascript jquery html

我试图在 for 循环中的每次迭代中为每个图像及其描述创建一个容器 div,但是 JQuery 将所有图像 div 和描述 div 集中到一个容器 div 中,这弄乱了整个布局.

我不确定它为什么这样做,特别是因为我正在创建一个新的容器 div 并在 for 循环中附加到它。

这是 JSFiddle:https://jsfiddle.net/ZEZEME/wza7q3tn/4/

HTML

<div class=PgTwo></div>

JS

$.getJSON(url, function(data) {
    arr = data.data;

    for (var i = 0; i < arr.length; i++) {
        var articleInfo = arr[i];
        console.log(articleInfo);

        var imgURL = articleInfo["listingimage"]['url'];
        var title = articleInfo["title"];
        var desc = articleInfo["listingdescription"];

        if (imgURL != "") {

            var imgWrapperDiv = document.createElement('div');
            var imgDiv = document.createElement('div');
            var descDiv = document.createElement('div');

            imgDiv.id = 'imgDiv';
            imgWrapperDiv.id = 'imgWrapperDiv';
            descDiv.id = 'descDiv';

            descDiv.textContent = desc;
            var imgurlCSS = 'url("'+imgURL+'")';
            $(imgDiv).css({'background-image': imgurlCSS, 'background-repeat': 'no-repeat', 'background-size': 'cover'});

            $(imgDiv).append($('<a href="" id=link >'+ title +'</a>').css('text-decoration', 'none'));
            $('#imgWrapperDiv').append(imgDiv);
            $('#imgWrapperDiv').append(descDiv);
            $('.PgTwo').append(imgWrapperDiv);
        }
     }
 });

最佳答案

您只在 for 循环中使用了一个 id。所以你正在创建包装器 div,然后设置它的 id 但每次它都将它设置为与以前相同的 id。在 DOM 中只有一个包装 div 存在。

关于javascript - 为什么 JQuery 不在每次迭代时创建一个新的 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56505074/

相关文章:

javascript - 在 QUnit 中使用多个过滤器 url 参数

javascript - Highcharts 柱形图颜色由单一颜色但根据各自的列值具有不同的亮度级别

javascript - 使用 JavaScript 解码 url 编码的 windows-1251 (cp1251) 字符串

javascript - 获取提交事件中表单的提交方式

javascript - 如何将行复制到数据表中并保存到本地存储?

javascript - 使用 JavaScript 触发 CSS 转换

html - 如何仅显示根据屏幕尺寸而变化的宽图像的中心

javascript - 历史记录和通过 JavaScript 修改的 HTML

javascript - 如何让子组件控制父组件的 react ?

javascript - jQuery后台提交表单