- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 JavaScript。
var label = document.getElementById('lblMsg');
如果我使用 F12 检查元素,它被描述为 HTMLSpanElement。我无法将元素转换为其类型,例如:
var label = (HTMLSpanElement) document.getElementById('lblMsg');
那么 HTMLSpanElement 有什么用呢?它与其他 HTMLElements 有什么不同的属性吗?
最佳答案
由于您是初学者,我将指出一些基本事实,以帮助您理解所观察到的内容。
JavaScript 是弱类型的
JavaScript 中的对象确实有类型,但变量没有类型,即任何变量都可以采用任何类型的任何对象。类型转换不是必需的,也不可能(事实上 (HTMLSpanElement) document.getElementById('lblMsg')
行是一个语法错误)。
HTML 元素类型
HTMLSpanElement
是一种类型。好吧,不是真的。它是一个 DOM 接口(interface),为方便起见,所有现代浏览器都将其视为 native 对象类型。大多数 HTML 元素都有其主界面的类型。
接口(interface)的要点是公开一组可供所有实现使用的方法、属性或事件。您已经拥有 HTMLSpanElement
的 MDN 链接:https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement .
测试类型
要测试一个对象是否是特定类型的实例,我们可以使用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% 万无一失,但它适用于所有内置对象。
关于javascript - HTMLSpanElement(和其他)有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39355545/
我想在跨度内显示我的计算值,但它返回值“Object HTMLSpanelement”。我认为这与我的可变价格超出范围有关? 顺便说一句:我使用innerHTML,因为旧版浏览器支持它,但是你们有什么
每当我在网站上使用联系表单时,除了消息之外,一切都工作正常。它正在返回 [object HTMLSpanElement] 这是我的 mail.js 代码,我创建了单独的文件,因为我也使用此文件进行错误
引用文献: https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement https://developer.mozilla.org
我正在学习 JavaScript。 var label = document.getElementById('lblMsg'); 如果我使用 F12 检查元素,它被描述为 HTMLSpanElemen
Distance: m Time: s Speed
我正在尝试使用下面的 Handlebars 辅助代码返回 html 标记而不是字符串。 Handlebars.registerHelper('getFeatureValue', function(v1
好吧,我正在尝试添加两个(或更多)变量并使其出现在表格单元格中。我从第一个和第二个单元格获取变量,我想将它们显示在第七个单元格上,所以这就是我现在所拥有的。这是获取信息的单元格的基本代码。 funct
为什么我无法在具有时间戳类的跨度内获取本地格式的时间? var modifiedField = document.querySelector(".modified"); var modifiedFie
我在 javascript 中创建了一个 span 标签并使用 .innerHTML 我试图将它附加到另一个标签中。但在网页中它显示为 [object HTMLSpanElement]。 var te
我遇到以下问题...我想用 span 的其他文本替换 div 的文本。 所以我尝试了这个: This text should be exported Here the new text sh
我有一个运行良好的脚本,用于检查访问者是否已分配优惠券代码,但我想添加功能来检索分配给他们的优惠券代码并显示它。两者都依赖于 localStorage 属性。我遇到的问题是,当我显示存储值时,它返回
此页面上发生了一些奇怪的事情: require "watir-webdriver" b = Watir::Browser.new b.goto "http://mideastunes.com/" b.
我是一名优秀的程序员,十分优秀!