通过javascript DOM创建html(realy基本问题)

通过javascript DOM创建html(realy基本问题),javascript,dom,Javascript,Dom,我在使用javascript时遇到了一些问题。不知何故,我无法开始使用javascript创建html元素(或者说我没有得到任何结果) 我不允许使用: document.writeln(“…”) 我试过这个: document.getElementsByTagName('body').appendChild('h1'); document.getElementsByTagName('h1').innerHTML = 'teeeekst'; 这是: var element = document.

我在使用javascript时遇到了一些问题。不知何故,我无法开始使用javascript创建html元素(或者说我没有得到任何结果)

我不允许使用:

document.writeln(“…”)

我试过这个:

document.getElementsByTagName('body').appendChild('h1');
document.getElementsByTagName('h1').innerHTML = 'teeeekst';
这是:

var element = document.createElement('h1');
element.appendChild(document.createTextNode('text'));
但是我的浏览器没有显示任何文本。当我在这个代码块中放置一个警报时,它确实会显示出来。所以我知道密码已经被破解了

对于这项学校作业,我需要通过javascript设置整个html,它通常进入正文

有没有设置h1或div的小型工作代码示例

我的完整代码:

<html>
  <head>
    <title>A boring website</title>
    <link rel="stylesheet" type="text/css" href="createDom.css"> 


    <script type="text/javascript">

    var element = document.createElement('h1');
element.innerHTML = "Since when?";

document.body.appendChild(element);


    </script>

  </head>
  <body>

 </body>
</html>

无聊的网站
var元素=document.createElement('h1');
element.innerHTML=“从何时开始?”;
document.body.appendChild(元素);

是否将元素附加到文档中

与将文本节点附加到新创建的元素的方式大致相同,还必须将元素附加到DOM的目标元素

因此,例如,如果要将新元素附加到页面的某个位置,必须首先将元素作为目标,然后再附加

//where you want the new element to do
var target = document.getElementById('target'); 
// create the new element
var element = document.createElement('h1');
element.appendChild(document.createTextNode('text'));
// append
target.appendChild(element);

您是否将元素附加到文档中

与将文本节点附加到新创建的元素的方式大致相同,还必须将元素附加到DOM的目标元素

因此,例如,如果要将新元素附加到页面的某个位置,必须首先将元素作为目标,然后再附加

//where you want the new element to do
var target = document.getElementById('target'); 
// create the new element
var element = document.createElement('h1');
element.appendChild(document.createTextNode('text'));
// append
target.appendChild(element);

getElementsByTagName
返回一个节点列表(类似于一个元素数组),而不是一个元素。您需要对它进行迭代,或者至少从中选择一个项目,并访问其中元素的属性。(body元素更容易被引用为
document.body
。)

appendChild
需要一个节点,而不是字符串

var h1 = document.createElement('h1');
var content = document.createTextNode('text');
h1.appendChild(content);
document.body.appendChild(h1);
您还必须确保代码不会在主体存在之前运行,就像在编辑的问题中一样

实现这一点的最简单方法是将其包装在一个运行onload的函数中

window.onload = function () {
    var h1 = document.createElement('h1');
    var content = document.createTextNode('text');
    h1.appendChild(content);
    document.body.appendChild(h1);
}

…但通常最好使用抽象浏览器中各种健壮的事件处理系统。

getElementsByTagName
返回一个节点列表(类似于元素数组),而不是一个元素。您需要对它进行迭代,或者至少从中选择一个项目,并访问其中元素的属性。(body元素更容易被引用为
document.body
。)

appendChild
需要一个节点,而不是字符串

var h1 = document.createElement('h1');
var content = document.createTextNode('text');
h1.appendChild(content);
document.body.appendChild(h1);
您还必须确保代码不会在主体存在之前运行,就像在编辑的问题中一样

实现这一点的最简单方法是将其包装在一个运行onload的函数中

window.onload = function () {
    var h1 = document.createElement('h1');
    var content = document.createTextNode('text');
    h1.appendChild(content);
    document.body.appendChild(h1);
}

…但通常更好的做法是使用抽象浏览器中各种健壮的事件处理系统。

创建元素,添加html内容并附加到正文中

var element = document.createElement('h1');
element.innerHTML = 'teeeekst';
document.body.appendChild(element);

创建元素,添加html内容并附加到正文

var element = document.createElement('h1');
element.innerHTML = 'teeeekst';
document.body.appendChild(element);

如果将元素添加到文档中,第一个将不起作用,第二个将起作用。我建议您阅读。如果将元素添加到文档中,第一个将不起作用,第二个将起作用。我建议阅读。这可能会引发
错误:层次结构\u请求\u错误:DOM异常3
。您不能将元素直接附加到正文中。当我添加以下内容时:“document.appendChild(element);”对于我的第二个代码示例,它仍然不起作用。你能给我写一个工作示例,例如在身体上创建一个h1标记,并带有te文本:“样本h1”?@Quentin:是的,我知道。这是我答错了。我还扩展了答案。@FelixKling:我没有输入
正文
引用。@Felix Kling-因为我在Chrome中测试过。这可能会抛出
错误:层次结构\u请求\u错误:DOM异常3
。您不能将元素直接附加到正文中。当我添加以下内容时:“document.appendChild(element);”对于我的第二个代码示例,它仍然不起作用。你能给我写一个工作示例,例如在身体上创建一个h1标记,并带有te文本:“样本h1”?@Quentin:是的,我知道。这是我答错了。我还扩展了答案。@FelixKling:我没有输入
正文
引用。@Felix Kling-因为我用Chrome进行了测试。对我来说,这看起来也应该起作用。但是,当我将它粘贴到html文档中并在浏览器中打开它时,我仍然会看到一个空白页面,选项卡中只有一个标题。在页面末尾添加javascript,就在
之前,对我来说,这似乎也应该起到作用。但是当我将它粘贴到html文档中并在浏览器中打开它时,仍然会看到一个空白页面,选项卡中只有一个标题。在页面末尾添加javascript,就在