所以我在这里有这个代码,我想用来动态制作元素,但它不起作用:
make = {};
elements = ['a', 'div', 'span', 'form', 'h1', 'h2', 'h3', 'h4'];
elements.forEach(function(element){
make[element] = function() {
document.createElement(element);
}
})
然而,当我这样做时:
var h1 = make.h1();
我得到了未定义的...有人可以解释为什么我传递给createElement函数的元素参数不起作用吗?我检查了这个干并调试,我注意到make对象具有所有正确的属性和相应的函数,但是createElement函数似乎没有保留我想要传递的元素的正确值。
免责声明:我知道我可以使用大量的图书馆,但我这样做是为了学习和理解目的。感谢任何需要一些时间向我解释的人。 :
答案 0 :(得分:2)
这是一种更实用的方法
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='', db='mysql')
输出
let elements = ['a', 'div', 'span', 'form', 'h1', 'h2', 'h3', 'h4']
let make = elements.reduce((acc, elem) =>
Object.assign(acc, { [elem]: document.createElement(elem) }), {})
console.log(make)