开发者问题收集

javascript “document.getElementById未定义”

2011-07-04
8279

我不知道,但我可能错过了一些东西,我尝试了一些方法,但结果都一样,我快要抓狂了

<script type="text/javascript">
function set_size() {
// Get users Screen Res
var screen_height = screen.height;
var attribute = "height";
var element = "pdfFile";

// Take say 200px off the res to accumulate the browser screen useage
var object_height = screen_height - 200;

// Write to the height attribute
document.getElementById[element].getAttribute[attribute].value = object_height;
document.getElementById['jsoutput'].innerhtml = object_height;
}
</script>

<div class="Contact_list">
<a name="contacts"><object id="pdfFile" data="files/contacts/pdf/contacts.pdf" type="application/pdf" width="100%" height="600" style="border: 1px solid;"></object></a>
<span id="jsoutput"></span>
</div>

<script type="text/javascript">
set_size();
</script>

[12:13:28.050] document.getElementById[element] is undefined @ http://localhost/ * */index.php?page=contacts#contacts:57

3个回答

这两个都不应该像这样:

// Write to the height attribute
document.getElementById[element].getAttribute[attribute].value = object_height;
document.getElementById['jsoutput'].innerhtml = object_height;

而应该是这样的:

// Write to the height attribute
document.getElementById(element).style.height = object_height;
document.getElementById('jsoutput').style.height = object_height;

getElementById 和 getAttribute 是函数,它们的参数放在圆括号中,而不是方括号中。

高度是通过设置 style.height 来设置的,而不是在属性上设置 .value。 通常,您不会在 <span> 标签所在的内联元素上设置高度。您可以在块元素或内联块元素上设置高度。因此,您尝试在 jsoutput 对象上设置高度可能不会达到您想要的效果。

此外,innerHTML 属性必须大写为 innerHTML,而不是 innerhtml,尽管您无论如何都没有正确使用该属性,所以我用 style.height 替换了它。

jfriend00
2011-07-04

getElementById是一个函数,而不是数组 - 用()调用它,而不是围绕ID

调用[]
Ivan Peevski
2011-07-04

getElementById(element) 不是 document.getElementById[element]`..请验证...

Dinash
2011-07-04