0

这是一个找到学校ID 的网页示例:

<html><body><div><table style="height:2px"><tr><td style="height:10px"><div id="school">

目前我有这个 JavaScript 代码,该代码可以很好地检测学校ID,它为我提供了该 div 元素的 DOM 路径。但现在我还想检查是否有高度样式元素,以及是否有值。然后用alert(y).

var path = [];
var el = document.getElementById('school');
do {
    var qq = path.unshift(el.nodeName);
    if (el.nodeName.currentStyle){ var y = qq.currentStyle["Height"]; alert(y);}
 else {var y = document.defaultView.getComputedStyle(el.nodeName,null).getPropertyValue("Height");alert(y);}

} while ((el.nodeName.toLowerCase() != 'html') && (el = el.parentNode))

但这不起作用。问题:需要帮助来读取所有当前height值(div id="school"元素路径的)。

正常它必须提醒我这个值:2px 10px

如果需要更多信息,请在下面评论。

4

2 回答 2

0

您应该尝试在代码中将“高度”的大小写更改为小写,因为它区分大小写(“高度”)。

以 IE 为例,

.currentStyle["height"];

对于 Mozilla,

.getPropertyValue("height");

当它运行时,它返回auto的高度 div school要找到 div学校的实际高度,您需要找到其父<td>元素和父<table>元素的高度。

例如,IE 中的以下代码返回<table>div school的父级的高度,并返回2px

.parentNode.parentNode.parentNode.parentNode.currentStyle["height"];

以下返回<td>div school父级的高度并返回10px

.parentNode.currentStyle["height"];
于 2013-04-09T12:14:37.167 回答
0

getComputedStyle(el.nodeName,null)应该getComputedStyle(el,null)

jsFiddle

于 2013-04-17T15:32:36.143 回答