gpt4 book ai didi

javascript - 我可以安全地使用 document.createElement 而不是 forms[i].document.createElement ('INPUT' )吗?

转载 作者:行者123 更新时间:2023-12-03 02:50:27 30 4
gpt4 key购买 nike

我支持一些旧版 JavaScript。

在 IE8 中这有效:

var hi = forms[i].document.createElement('INPUT');

在 IE 11 中,该代码会引发异常。

“JavaScript 运行时错误:无法获取未定义或 null 引用的属性“createElement””

我认为我可以删除 forms[i] 并安全地执行以下操作:

var hi = document.createElement('INPUT');

我已经运行了更新后的代码,它似乎可以正常运行。

有人可以确认我的假设是正确的吗?

完整功能:

function setFormGotoURL(url) {
var forms = PARENT.main.document.forms;
if (forms!=null && typeof(forms)!="undefined" && forms.length>0) {
for (var i=0;i<forms.length;i++) {
if (forms[i].gotoURL) {
var gotoURL = forms[i].gotoURL;
if (gotoURL!=null && typeof(gotoURL)!="undefined") {
gotoURL.value=url;
}
} //if
else {
//var hi = PARENT.main.document.createElement('INPUT');
var hi = document.createElement('INPUT');
hi.setAttribute("type","hidden");
hi.setAttribute("name","gotoURL");
hi.setAttribute("value",url);
forms[i].appendChild(hi);
}
}
}

}

最佳答案

来自MDN

In an HTML document, the Document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn't recognized. In a XUL document, it creates the specified XUL element. In other documents, it creates an element with a null namespace URI.

MDN 示例:

document.body.onload = addElement;

function addElement () {
// create a new div element
var newDiv = document.createElement("div");
// and give it some content
var newContent = document.createTextNode("Hi there and greetings!");
// add the text node to the newly created div
newDiv.appendChild(newContent);

// add the newly created element and its content into the DOM
var currentDiv = document.getElementById("div1");
document.body.insertBefore(newDiv, currentDiv);
}

您创建元素并将其分配给变量,然后将其添加到您想要的任何位置。 var hi = forms[i].document.createElement('INPUT'); 是不正确的代码。 anything.document 将返回 null,因为 document 是一个独立的标签,而不是元素的属性,这就是为什么它会给你错误 Unable to get property 'createElement' of undefined或 null 引用”,因为 null 没有属性 createElement

我理解您的困惑,但是请注意,如果您必须创建元素然后将其添加到 HTML,那么从表单创建标签并不重要,如果您还必须指定添加它的位置。我希望你能正确地理解它。

关于javascript - 我可以安全地使用 document.createElement 而不是 forms[i].document.createElement ('INPUT' )吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47891750/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com