为什么你可以使用新的图像而不是新的Div或新的Span?

时间:2018-01-27 07:11:53

标签: javascript html w3c

在示例中,我看到new Image()创建了一个新的HTML图片元素,但是当我尝试new Div()时,没有支持。这个或任何计划是否有理由将其添加?

示例:

var image = new Image();
var div = new Div(); // error

2 个答案:

答案 0 :(得分:10)

Div课程不存在。可以使用函数Document.createElement()

创建任何DOM元素
var div = document.createElement('div');
var img = document.createElement('img');

document.createElement('div')创建一个新的HTMLDivElement

new Image()实际上创建了HTMLImageElement,相当于document.createElement('img')

出于历史原因,可以使用new Image()语法创建图像。早在90年代,Image对象就是当前DOM发明之前所有浏览器实现的第一个动态HTML功能之一(更不用说所有浏览器以相同的方式实现)。 / p>

答案 1 :(得分:2)

这个方法存在的原因是一个很好的问题。 HTML Living Standard没有回答这个问题(https://html.spec.whatwg.org/multipage/embedded-content.html#dom-image)。它只是声明除了工厂方法之外还提供了HTMLImageElements的构造函数 document.createElement('img')

使用此功能,您可以创建所有DOM元素,例如 document.createElement('div') https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement

是否将为其他我不知道的元素实现这些构造函数。