提问人:Sein kim 提问时间:8/8/2023 最后编辑:Sein kim 更新时间:8/12/2023 访问量:54
该元素是否作为表单元素 HTMLCollection 的 name 属性的值进行访问?
Is the element accessed as the value of the name attribute of the form element HTMLCollection?
问:
for (let i of document.formBox) {
console.log(i)
};
<form name="formBox">
<input name="inputOne">
<input name="inputTwo">
<button name='btn'>BUTTON</button>
</form>
上面的代码工作正常。但是,是一个 ?为什么我可以使用语句?document.formBox
HTMLCollection
for..of
我以为回来了.然而,在不小心写了那段代码时,我感到很尴尬。document.formName
HTMLElement
答:
它可能是一个元素或一个集合,具体取决于有多少元素具有该名称。
for ... of
将处理元素或集合,因为它关心的是值是可迭代的,而不是它是一个集合。
console.log(document.foo.toString());
console.log(document.bar.toString());
for (let x of document.bar) {
console.log(x.toString());
}
<form name="foo"></form>
<form name="foo"></form>
<form name="bar"><input /><input /><input /></form>
在上面,是一个(包含实例),因为有多个形式的名称;您可以使用遍历该集合中的表单。但不是,因为只有一种形式的名称为 .相反,它是一个 .但实例也是可迭代的;迭代它们会遍历表单中的元素。document.foo
HTMLCollection
HTMLFormElement
"foo"
for...of
document.bar
HTMLCollection
"bar"
HTMLFormElement
HTMLFormElement
我强烈建议避免使用,因为它是模棱两可的。坚持和相反。document.nameOfElement
querySelector
querySelectorAll
在现代浏览器中,HTMLCollection
(以及 NodeList)是可迭代的,这意味着您可以使用 for...of 循环来循环访问这些集合中包含的元素。
我理解这种混淆,因为在旧版本的 JavaScript 中,这些集合是不可迭代的,您必须使用像 for 这样的传统循环或像 Array.prototype.forEach.call() 这样的方法来迭代它们。
意义:
在您的代码中,for...of 循环遍历该窗体中包含的元素(在本例中为两个输入元素和按钮)。
上一个:使用存储过程搜索字符串
下一个:发送请求直到获得响应 [重复]
评论