1

我需要将以下几行 vbscript 代码转换为 javascript, If TypeName(document.all(cFieldName)) = "HTMLInputElement" Then 并且

ElseIf TypeName(document.all(cFieldName)) = "HTMLSelectElement" Then

我试过了if(typeof $("#" + (cFieldName)) === "HTMLInputElement")else if(typeof $("#" + cFieldName) === "HTMLSelectElement")但他们没有工作。

4

1 回答 1

1

在这种特定情况下,您可以这样做:

if (document.all[cFieldName].nodeName === "INPUT") {
    // It's an input element
}

if (document.all[cFieldName].nodeName === "SELECT") {
    // It's a select element
}

(假设是 HTML,而不是 XHTML。在 XHTML 中,名称将是小写的。为了避免搞砸自己,我通常会.toUpperCase()在那里输入。)

正如你所发现的,typeof只会给你"object"。有可能在某些引擎上,Object.prototype.toString.call(document.all[cFieldName])可能会给你"HTMLInputElement",但我不希望它是可靠的跨浏览器(我认为这段代码被翻译的一个原因是在 IE 以外的浏览器上运行它)。在我的博客文章说什么?.

于 2013-02-11T09:36:17.217 回答