我正在尝试通过以下方式添加元素:
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};`
);
答案 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);