javascript - 使用纯 Javascript 创建输入字段

标签 javascript html createelement

我试图只用 JS 创建这样的元素:

<input type="text" value="default">

为此,我尝试了这段代码:

var mi = document.createElement("input");
mi.type= "text"
mi.value = "default"

但是当我在 Chrome Dev Tools 中运行它时,它只会创建这个元素:

<input type="text">

我错过了什么?

最佳答案

设置一个属性 HTMLElement与将它的属性设置为同一事物并不完全相同。

您很可能想使用 element.setAttribute

var mi = document.createElement("input");
mi.setAttribute('type', 'text');
mi.setAttribute('value', 'default');

现在你可以看到

new XMLSerializer().serializeToString(mi);
// "<input type="text" value="default">"

在您的示例中,<input> 显示的仍将是 default ,它只是没有设置为属性

进一步注意,如果用户更改了 <input> ,例如键入它,设置属性将不再更改,但设置属性仍会更改它。同样,这是因为 attribute 不同于 property

关于javascript - 使用纯 Javascript 创建输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17234209/

相关文章:

javascript onclick create(element) div viz弹出框

javascript - JS createElement 参数带破折号

javascript - 不允许输入某些字符的 jQuery 方法

javascript - IntroJS 'refresh' 可以在介绍开始后突出显示元素吗?

javascript - 如何使用 jQuery 单独引用动态生成的 Bootstrap 面板

css - 在页面之间切换导航栏 Bootstrap 3.2

javascript - 为什么appendChild添加的新节点离开函数后就消失了?

javascript - json_encode php 变量(数组)为 javascript 变量时的键排序

javascript - 通过 Flash 控制 Javascript > CSS

javascript - 谷歌地图删除标记效率太高