我想问如何在JavaScript中使用appendChild创建元素后为其添加类?
document.forms[0].appendChild(document.createElement("input"));
如何为我创建的输入元素添加类?
我只使用JavaScript,不喜欢jQuery,请用纯JavaScript回答。
document.forms[0].appendChild(document.createElement("input"));
如何为我创建的输入元素添加类?
我只使用JavaScript,不喜欢jQuery,请用纯JavaScript回答。
var input = document.createElement("input");
您可以使用className属性:
input.className = "foo";
input.classList.add("foo");
input.setAttribute("class", "foo");
第一个方法被所有浏览器广泛支持,所以我强烈建议您使用这种方式,除非您不使用现代浏览器或要操作每个设置的类,则可以使用classList
。 我强烈建议避免后一种方法,因为使用setAttribute
会设置HTML的属性而不是JS对象的类名:然后,浏览器将该值映射到JS属性,但在某些情况下,它会失败(例如,某些版本的IE),因此即使HTML节点具有该属性,类也不会应用。
请注意,上述所有方法都适用于如何获取 HTML
节点引用,因此也适用于:
var input = document.getElementById("my-input");
等等。
在您的情况下,因为appendChild
返回被附加节点的引用,所以您也可以在一条语句中编写所有内容:
document.forms[0]
.appendChild(document.createElement("input"))
.className = "foo";
希望这可以帮助到您。
var input = document.createElement("input");
input.className = 'class_to_add';
document.forms[0].appendChild(input);
更新:
.appendChild
方法返回子元素,因此您也可以不使用变量来执行该操作:
document.forms[0].appendChild(document.createElement("input")).className = "class_to_add";
var i = document.createElement('input');
i.setAttribute('class', 'myclass');
document.forms[0].appendChild(i);
例如:
document.forms[0].appendChild(document.createElement("input")).className = "class_to_add";
appendChild
返回子元素而不是元素本身很奇怪。 - xdazzappendChild
将返回附加的子节点,在这种情况下,即input
节点。 - ZER0
classList
: 正是我在寻找的。超酷! :) - robe007