我用javascript创建了一个表:
t=document.getElementById('tabby');
for(var k=1; k<=100; k++)
{
t.innerHTML+="<tr> <td> hello </td> </tr>";
}
事情是,页面不可滚动。 (这很有意义。当页面加载时,表格并不存在。)
要解决这个问题,我在桌子形成后尝试设置主体的溢出来滚动:
document.getElementById('body').setAttribute('style', 'overflow:scroll;');
但它没有帮助。 (当然身体的身份是&#34;身体&#34;而桌子是&#34;虎斑&#34;)
我该怎么办?
感谢。
修改
哎呦。 似乎是位置:绝对;我摆出桌子的风格正在惹麻烦。
https://jsfiddle.net/t66dp7oc/
那么,如果我需要绝对位置以及页面可滚动,我该怎么办?
答案 0 :(得分:2)
我可能没有完全解决你的问题,但这是你可以尝试的表格。这对我来说似乎是最好的解决方案。只是尝试在循环外创建变量:
function tableCreate() {
var body = document.getElementsByTagName('body')[0];
var tbl = document.createElement('table');
tbl.style.width = '100%';
tbl.setAttribute('border', '1');
var tbdy = document.createElement('tbody');
for (var i = 0; i < 3; i++) {
var tr = document.createElement('tr');
for (var j = 0; j < 2; j++) {
if (i == 2 && j == 1) {
break
} else {
var td = document.createElement('td');
td.appendChild(document.createTextNode('\u0020'))
i == 1 && j == 1 ? td.setAttribute('rowSpan', '2') : null;
tr.appendChild(td)
}
}
tbdy.appendChild(tr);
}
tbl.appendChild(tbdy);
body.appendChild(tbl)
}
答案 1 :(得分:1)
overflow
属性不适用于表。
因此,您可以将表格的display
更改为block
或inline-block
:
table {
display: block;
overflow: scroll;
}
请注意,这可能会破坏一些表格功能。
var t = document.createElement('table'),
tr = document.createElement('tr');
tr.innerHTML = '<td>Hello</td>';
for(var i=0; i<100; ++i)
t.appendChild(tr.cloneNode(true));
document.body.appendChild(t);
table {
display: block;
overflow: scroll;
height: 100px;
}
答案 2 :(得分:0)
你应该这样做:
document.body.setAttribute('style', 'overflow:scroll;');
答案 3 :(得分:0)
试试这个。
var tableRows = '';
for (var i = 0; i <= 100; i++) {
tableRows += "<tr> <td> hello </td> </tr>";
}
var tabby = document.getElementById('tabby');
tabby.innerHTML = tableRows;
另外,我建议使用jQuery这样的东西。它只是让它变得更容易。
答案 4 :(得分:0)
我知道了。
我所要做的就是用div包装表,并给div设置绝对属性。至于表格,我给它的位置是:相对的;属性。效果很好。