如何在元素内添加元素? (ES6)

时间:2019-07-28 02:41:50

标签: javascript html ecmascript-6

我正在尝试通过以下方式添加元素:

let el = `<div></div>`;
document.body.appendChild(el);

我注意到el在console.log中显示为“字符串”。我应该改为通过createElement添加元素吗?

代码:

let topPos = (Math.random() * 100) + '%'
let leftPos = (Math.random() * 100) + '%'
let bubbleMd = `
    <div class="bubble bubble-md"></div>
`;
let layer = document.getElementsByClassName('layer3')

layer.appendChild(bubbleMd).setAttribute(
    'style',`top: ${topPos}; left: ${leftPos};`
);

1 个答案:

答案 0 :(得分:1)

a)是,您需要使用createElement,因为appendChild期望HTMLElement不是字符串,b)图层是节点列表,因此没有appendChild方法

所以:

let topPos = (Math.random() * 100) + '%'
let leftPos = (Math.random() * 100) + '%'
let bubbleMd = createElemnt('div');
bubbleMd.classList.add('bubble', 'bubble-md');
bubbleMd.style=`top: ${topPos}; left: ${leftPos};`;
let layer = document.getElementsByClassName('layer3')[0]; // note the [0]
layer.appendChild(bubbleMd);