我正在尝试使用JavaScript动态创建一个网站,但无法让我的getElementById函数正常工作。我已经探索了很多,发现了一些例子,并试图使它们无法成功(大多数都不使用外部的.js文件)。下面是我的JavaScript和HTML代码:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Final Project</title>
<script type="text/javascript">
</script>
</head>
<body>
<script type="text/javascript" src="finalProj.js">
</script>
<form name = "myForm">
<h1 id="myHeader"></h1>
JavaScript的:
var firstName = ("RicK");
var courseName = ("WEB 180");
function myHeading()
{
document.getElementById('header').write = (firstName + lastName);
}
答案 0 :(得分:6)
应该有权访问某些DOM元素的JavaScript代码必须在之后 HTML中的元素,否则元素不会在DOM中生成(假设您编写的JavaScript代码)在finalProj.js
):
<body>
<form name = "myForm">
<h1 id="myHeader"></h1>
</from>
<!-- can access myHeader now -->
<script type="text/javascript" src="finalProj.js"></script>
</body>
不知道 write
属性,但innerHTML
应该这样做:
document.getElementById('myHeader').innerHTML = firstName + lastName;
当然,您也必须致电myHeading()
!
答案 1 :(得分:2)
document.getElementById('myheader').innerHTML = "(" + firstName + ' ' + lastName + ")";
答案 2 :(得分:2)
您指定的ID以及您尝试选择的标头的ID不匹配。你有:
<h1 id="myHeader"></h1>
和
document.getElementById('header').write = (firstName + lastName);
您需要将其更改为:
document.getElementById('myHeader').write = (firstName + lastName);
答案 3 :(得分:1)
尝试这样的事情:
var firstName = "RicK";
var courseName = "WEB 180";
function myHeading() {
document.getElementById('header').innerHTML = firstName + " " + lastName;
}
答案 4 :(得分:1)
您想要的属性是innerHTML
(您可以省略括号):
document.getElementById('myHeader').innerHTML = firstName + lastName;