我正在尝试动态创建一个表格并用特定数量的单元格填充它,具体取决于视口的宽度。我还想确保它会在页面加载时调整屏幕的宽度(因此不仅仅是常规的屏幕尺寸)。
到目前为止,这是我尝试过的,此代码在window.onload
函数内:
JavaScript
var table = document.getElementById('instagram_table_body');
/* Number of elements per row */
var rowElems = Math.floor(screen.width / 152);
/* Number of rows */
var rowCount = Math.ceil(data.length / rowElems);
var globalCounter = 0;
for (var i=0; i<rowCount; i++) {
var tr = document.createElement('tr');
for (var j = 0; j < rowElems; j++) {
var td = document.createElement('td');
var img = document.createElement('img');
var a = document.createElement('a');
a.href = data[globalCounter].images.standard_resolution.url;
img.src = data[globalCounter].images.thumbnail.url;
tr.appendChild(td.appendChild(a.appendChild(img)));
globalCounter++;
}
table.appendChild(tr);
}
问题是这段代码没有输出任何东西,实际上没有tr
附加到表体中。我知道使用的数据在那里并且有效(它来自 AJAX 调用并在常规动态表中显示它可以正常工作。
问题似乎与子附加过程或当我将行附加到表的那一刻有关,我还不能完全发现它。
注意:我正在努力提高效率,这是 jQuery 不存在的主要原因。(它实际上只用于$.get
and$.post
方法)