JavaScript中的createElement和appendChild

JavaScript中的createElement和appendChild,javascript,html,appendchild,createelement,Javascript,Html,Appendchild,Createelement,我正在试图弄清楚为什么createElement和appendChild不能工作。我相信我的代码是正确的,所以我不太确定为什么它不工作。。。(我正在使用IE 10) 代码已更新 JavaScript文件: var myObj = { firstName: "John", lastName: "Smith" }; HTML文件: <!DOCTYPE html /> <html> <title>The Data Structure</titl

我正在试图弄清楚为什么createElement和appendChild不能工作。我相信我的代码是正确的,所以我不太确定为什么它不工作。。。(我正在使用IE 10)

代码已更新

JavaScript文件:

var myObj = {

   firstName: "John",
   lastName: "Smith"
};
HTML文件:

<!DOCTYPE html />
<html>
<title>The Data Structure</title>
<body>

<script type="text/javascript" src="TheData.js">

var theElement = document.createElement('p');
var theText = document.createTextNode(myObj.firstName);
theElement.appendChild(theText);
document.body.appendChild(theElement);

</script>
</body>
</html>

数据结构
var theElement=document.createElement('p');
var theText=document.createTextNode(myObj.firstName);
元素。追加子元素(文本);
文件.正文.附件(元素);

您从未将
元素添加到文档中!在末尾再添加一行:

document.body.appendChild(theElement);

作为旁注,这个立即调用的函数是做什么的

(function () {
return myObj.firstName;
}());

它什么也不做

您从未将
元素添加到文档中!在末尾再添加一行:

document.body.appendChild(theElement);

作为旁注,这个立即调用的函数是做什么的

(function () {
return myObj.firstName;
}());
它什么也不做

问题在于,你们都在
脚本
标记上提供了
src
,并在其中提供了内容。这是无效的,你可以做一个或另一个,不能两者都做。大多数浏览器将使用
src
,而忽略内容

除此之外,创建元素不会将其放入DOM中。您必须将其添加到某个位置(通过
appendChild
insertBefore
或类似方式)

所以也许:

<script src="TheData.js"></script>
<!-- Note: Two separate script elements -->
<script>
var theElement = document.createElement('p');
var theText = document.createTextNode(myObj.firstName);
theElement.appendChild(theText);
document.body.appendChild(theElement); // <==== Note: Adding `the Element` to the DOM
</script>

var theElement=document.createElement('p');
var theText=document.createTextNode(myObj.firstName);
元素。追加子元素(文本);
document.body.appendChild(theElement);// 问题在于,您在
脚本
标记上提供了
src
,并在其中提供了内容。这是无效的,你可以做一个或另一个,不能两者都做。大多数浏览器将使用
src
,而忽略内容

除此之外,创建元素不会将其放入DOM中。您必须将其添加到某个位置(通过
appendChild
insertBefore
或类似方式)

所以也许:

<script src="TheData.js"></script>
<!-- Note: Two separate script elements -->
<script>
var theElement = document.createElement('p');
var theText = document.createTextNode(myObj.firstName);
theElement.appendChild(theText);
document.body.appendChild(theElement); // <==== Note: Adding `the Element` to the DOM
</script>

var theElement=document.createElement('p');
var theText=document.createTextNode(myObj.firstName);
元素。追加子元素(文本);

document.body.appendChild(theElement);//是的,匿名函数将变成某种东西。现在只是一个占位符。这是我开始做但没有完成的事情之一。而且,
myObj.FirstName!==myObj.firstName
是的,匿名函数将变成某种东西。现在只是一个占位符。这是我开始做但没有完成的事情之一。而且,
myObj.FirstName!==myObj.firstName
疯狂火车注意到的小细节:它应该是创建文本节点的行中的
myObj.firstName
(小写
f
)。疯狂火车注意到的小细节:它应该是创建文本节点的行中的
myObj.firstName
(小写
f
)。