Javascript 为什么可以使用新映像,而不能使用新Div或新Span?

Javascript 为什么可以使用新映像,而不能使用新Div或新Span?,javascript,html,w3c,Javascript,Html,W3c,在示例中,我看到了创建新HTML图像元素的new Image(),但是当我尝试new Div()时,没有支持。是否有理由这样做或将来有任何计划添加它 例如: var image = new Image(); var div = new Div(); // error 这是一个很好的问题,为什么会存在这种方法。HTML生活标准没有回答这个问题()。它只是声明,除了工厂方法之外,还提供了一个用于HTMLImageElements的构造函数 document.createElement('img')

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

例如:

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

这是一个很好的问题,为什么会存在这种方法。HTML生活标准没有回答这个问题()。它只是声明,除了工厂方法之外,还提供了一个用于HTMLImageElements的构造函数
document.createElement('img')

使用此函数,您可以创建所有DOM元素,例如。
document.createElement('div')


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

Div类不存在。可以使用以下函数创建任何DOM元素:

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

实际上创建了一个和,相当于
document.createElement('img')


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

我的谷歌搜索得出结论,您使用的是Web Api

这也可能是由于建造商的存在:

  • HTMLImageElement的构造函数为Image(),因此它允许创建新的Image()
  • HtmlLevel没有构造函数
  • 资料来源:


    这只是一个猜测。图像本身是完整的。没有所谓的
    Suff
    <代码>另一方面,它几乎总是其他东西的容器。@James a Mohler:为什么一个空元素有一个唯一的构造函数是有意义的,而一个非空元素有一个构造函数是没有意义的?5个答案,而你是唯一一个真正回答这个问题的。。。谢谢你。不管怎样,我想当Web API=p上发生奇怪的事情时,人们应该期待历史原因会露出他们丑陋的脑袋——如果你有一个外部来源支持你的说法也会很酷。@Paul Stenne:他们说“Stack Overflow以高质量的问答和专家的回答为荣……”至少,这些确实不时出现:)
    var div = document.createElement('div');
    var img = document.createElement('img');