javascript - 如何在元素中添加元素?(ES6)
问题描述
我正在尝试使用以下方法添加元素:
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};`
);
解决方案
a) 是的,您需要使用 createElement 因为 appendChild 需要一个 HTMLElement 而不是字符串,b) layer 是一个节点列表,所以没有 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);
推荐阅读
- mysql - 将多态范围与 or 结合
- python - 带有混合数据的 Numpy savetxt
- reactjs - 组件状态以意外方式更改?
- php - PHP mkdir():权限被拒绝
- outlook - C#outlook addin 如何显示我自己的表单区域
- android - 如何使导航抽屉中的片段在再次打开时不重新加载?
- java - 如何使用 maven-tomcat7-plugin 在 Tomcat 上正确热部署/重新部署战争?
- python - 如何将 pandas DataFrame 时间戳与 .ics 文件日期进行比较
- excel - 让 Excel 使用更多内存
- angularjs - angularjs 和 angular 4 http 请求