为什么在将 `maxlength` 属性设置为 `input` 时不能使用点符号?

Why can I not use dot notation while setting `maxlength` attribute to an `input`?

我正在使用 Firefox,我想将动态创建的 input 添加到文档中。我使用点符号来设置属性。

var input = document.createElement("input");
input.placeholder = "Working";
input.maxlength = 4;
document.getElementById("add_here").appendChild(input)

但是,我遇到了一个奇怪的问题。
placeholder 属性已正确添加,但未设置 maxlength

我做了一个 JSFiddle 来证明它:https://jsfiddle.net/phc8fxba/

我找到的唯一解决方法是使用 .setAttribute(maxlength, 4) 但这很奇怪。

为什么点符号在这里不起作用?

你打错了,应该是:

input.maxLength = 4;

属性 被命名为 maxLength,而不是 maxlength:

input.maxLength = 4;

HTML 属性不区分大小写,但 JavaScript 属性区分大小写。

改成input.maxLength = 4;。您的命令不起作用,因为 javascript 支持驼峰式大小写。

您需要使用setAttribute 函数来设置maxlength 和placeholder 等。点符号直接访问属性。使用 getter 或 setter 函数更好。

var input = document.createElement("input");
input.setAttribute('placeholder', 'Working');
input.setAttribute('maxLength', 4);