在 PhantomJS 中创建带有类名的嵌套元素

create nested elements with classnames in PhantomJS

我正在一个元素中创建一个元素用于测试目的:

const item = document.createElement("div");
// item.className("item");
item.className = "item";
const content = document.getElementsByClassName("item").appendChild("div");
content.className = "content";

但是,我收到错误消息:

undefined is not a constructor (evaluating 'document.getElementsByClassName("item").appendChild("div")'

有人可以帮忙吗?

P.S。感谢所有反馈!

这很容易。 className 是一个 属性

item.className = "item";

2018年秋季更灵活的做法是使用classList属性 of HTML元素

element.classList.add('item');

如果我没看错你的逻辑,最后的代码如下:

const item = document.createElement('div');
item.classList.add('item');
const content = document.createElement('div');
content.classList.add('content');
item.appendChild(content);

您可能喜欢使用 classList 而不是 className,因为稍后将删除此元素的所有其他 class。

其次,document.getElementsByClassName("item").appendChild("div"); 不会作为 document.getElementsByClassName returns 节点列表工作。您需要获取索引才能添加元素

const item = document.createElement("div");
item.classList.add("item");
const content = document.getElementsByClassName("item")[0].appendChild("div");
content.className = "content";