需要帮助使用Javascript在表格高度设置div

时间:2012-02-16 19:18:41

标签: javascript html html-table

我正在尝试将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");,因为有人提出了有用的建议。这仍然不起作用,我得到相同的错误,没有高度变化。

1 个答案:

答案 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");
}