我正在尝试将div设置为空表格单元格内的某个高度,以将单元格设置为100%高度。 (整个页面只包含没有填充的表。)
以下是一些相关代码:
<table border="0" width="100%">
<tr>
<td class="boxmiddleleft"></td>
<td class="boxmiddlecenter"><script language="javascript" src="includes/clock.js">/*clock*/</script></td>
</tr>
<tr>
<td class="boxbottomleft"><script language="javascript" src="includes/windowsize.js"></script><div id="divbottomresize"></div></td>
<td class="boxbottomcenter"><button type="button" onclick="resizeheight();">Changed the window height? Reset by pressing this button.</button></td>
</tr>
</table>
(使用div我试图改变高度,称为'#divbottomresize')
我正在使用的JavaScript:
var element = "divbottomresize";
function resizeheight(element) {
var height = 0;
var body = window.document.body;
if (window.innerHeight) {
height = window.innerHeight;
} else if (body.parentElement.clientHeight) {
height = body.parentElement.clientHeight;
} else if (body && body.clientHeight) {
height = body.clientHeight;
}
element.style.height = ((height - element.offsetTop) + "px");
}
如果您知道我做错了什么,请告诉我。或者,如果您发现其他代码可以执行我想要的操作,请随时粘贴或链接我。 (如果可能,我不想使用jQuery。)
当我在Chrome中运行代码并转到“检查元素”时,我收到错误:
windowsize.js:12Uncaught TypeError:无法在行元素上读取未定义的属性'style'。style.height =((height - element.offsetTop)+“px”);
编辑:我已将var element = "divbottomresize";
更改为var element = document.getElementById("divbottomresize");
,因为有人提出了有用的建议。这仍然不起作用,我得到相同的错误,没有高度变化。
答案 0 :(得分:2)
resize函数需要element参数,因此我们需要更新HTML:
<td class="boxbottomcenter"><button type="button" onclick="resizeheight('divbottomresize');">Changed the window height? Reset by pressing this button.</button></td>
现在,我们需要更改Javascript,使用函数传递的STRING值,然后检索带有该ID的标记以便进一步处理:
function resizeheight(id_element) {
var div = document.getElementById(id_element);
var height = 0;
var body = window.document.body;
if (window.innerHeight) {
height = window.innerHeight;
} else if (body.parentElement.clientHeight) {
height = body.parentElement.clientHeight;
} else if (body && body.clientHeight) {
height = body.clientHeight;
}
div.style.height = ((height - div.offsetTop) + "px");
}