Javascript HtmlPanelment(和其他)有什么用途
我正在学习javascriptJavascript HtmlPanelment(和其他)有什么用途,javascript,asp.net,internet-explorer,Javascript,Asp.net,Internet Explorer,我正在学习javascript var label = document.getElementById('lblMsg'); 如果我用F12检查元素,它将被描述为一个HtmlPanelElement。我无法将元素强制转换为其类型,例如: var label = (HTMLSpanElement) document.getElementById('lblMsg'); 那么HTMLPanelment有什么用呢?它有什么不同于其他HTMLElement的特性吗?既然你是一个初学者,我将指出一些基本
var label = document.getElementById('lblMsg');
如果我用F12检查元素,它将被描述为一个HtmlPanelElement。我无法将元素强制转换为其类型,例如:
var label = (HTMLSpanElement) document.getElementById('lblMsg');
那么HTMLPanelment有什么用呢?它有什么不同于其他HTMLElement的特性吗?既然你是一个初学者,我将指出一些基本事实,这些事实可能会帮助你理解你所观察到的东西 JavaScript是弱类型的 JavaScript中的对象有类型,但变量没有类型,即任何变量都可以接受任何类型的对象。类型转换不是必需的,也不可能(事实上,行
(HTMLSpanElement)文档.getElementById('lblMsg')
是一个语法错误)
HTML元素类型
HTMLSpanElement
是一种类型。嗯,不是真的。它是一个DOM接口,为了方便起见,所有现代浏览器都将其视为本机对象类型。大多数HTML元素都有其主界面的类型
接口的要点是公开一组可用于所有实现的方法、属性或事件。您已经有了HTMLSpanElement
的MDN链接:
对某一类型进行测试
为了测试对象是否是特定类型的实例,我们可以使用obj instanceof type
。在这种情况下:
if (document.getElementById('lblMsg') instanceof HTMLSpanElement)
{
...
}
类型继承始终受到尊重
document.getElementById('lblMsg') instanceof Object // true
获取对象的类型
要获取HTML元素的类型,我们使用element.constructor
,如中所示
document.getElementById('lblMsg').constructor
如果您在浏览器控制台中输入此项,您将看到如下内容
`function HTMLSpanElement() { [native code] }`
别惊讶。对象类型是JavaScript中的函数。如果我们只是对这个对象类型的名称感兴趣,我们可以使用
document.getElementById('lblMsg').constructor.name
这将生成字符串“HTMLSpanElement”
这种确定对象类型的方法并非100%万无一失,但它适用于所有内置对象。非常好的开始。谢谢。@ReBootTheUniverse很乐意帮忙。