为什么此过程不添加子元素?

时间:2015-08-31 21:24:16

标签: javascript jquery algorithm dom

我有一个程序

            newRows = JSON.parse(newRowsStr); 
            var wsr = $('#work-sample-row');
            for (var i = 0, n = newRows.length; i < n; ++i)
            {
                var thisBox = boxHtml;
                var thisNewRow = newRows[i];
                thisBox.find('.work-item-preview-outer').css('background-image', thisNewRow['imageurl']);
                thisBox.find('.work-title').text(thisNewRow['title']);
                thisBox.find('.work-descr-short').text(thisNewRow['sumsmall']);
                wsr.append(thisBox); 
                setTimeout(function(){thisBox.css('opacity','0');}, i * 200)
            }     

,其中

boxHtml = $('<div class="mb-30-for-mobile col-xxs-12 col-xs-6 col-sm-4 col-md-3 col-lg-3 work-column" style="opacity:0;"><a class="work-link-wrap"><div class="work-item-preview-outer"><div class="work-item-preview-inner"><h3 class="work-title"></h3><p class="work-descr-short"></p></div></div></a></div>');

以及在循环内部要做的是创建boxHtml的副本并添加一些文本和样式,然后使每个副本成为$('#work-sample-row')的子项。我没有在控制台中看到任何错误,但我也没有看到孩子们被添加。是什么给了什么?

1 个答案:

答案 0 :(得分:0)

在执行thisBox = boxHtml时,您没有创建副本,只是创建了对boxHtml的新引用。如果boxHtml是jQuery包装元素,请尝试thisBox = boxHtml.clone();如果它不是包装元素,请thisBox = $(boxHtml).clone();