Javascript 添加带连字符的'-';在函数中使用assign将属性指定给标记
我使用此函数动态创建用户选择数量的输入组:Javascript 添加带连字符的'-';在函数中使用assign将属性指定给标记,javascript,dom,bootstrap-4,Javascript,Dom,Bootstrap 4,我使用此函数动态创建用户选择数量的输入组: const tag = (tag, className, props = {}) => Object.assign(document.createElement(tag), {className, ...props}); 一切正常,除了我打一个带有连字符字段的调用,比如tag(“div”,“collapse”,“id:“card”+cardCount,data parentList:“#parentList”}”) 它在“数据父对象”
const tag = (tag, className, props = {}) =>
Object.assign(document.createElement(tag), {className, ...props});
一切正常,除了我打一个带有连字符字段的调用,比如tag(“div”,“collapse”,“id:“card”+cardCount,data parentList:“#parentList”}”)
它在“数据父对象”属性上给了我一个错误。我用['data-parent']替换了它,但仍然得到了一个错误。如何使其工作?您需要在
'data-parent'
tag("div", "collapse", {id: "card" + cardCount, 'data-parent': "#parentList"})
p.S.
你可以找到这些文件
已更新
此处不应使用Object.assign()
,因为它的主要功能是修改对象,而document.createElement()
返回一个DOM,该DOM提供了setAttibute
方法向其添加属性
因此,标记
应写为:
const tag = (tag, className, props = {}) => {
const el = document.createElement(tag);
el.className = className;
Object.keys(props).forEach(
key => el.setAttribute(key, props[key])
);
return el;
}
...
tag("div", "collapse", {id: "card" + cardCount, 'data-parent': "#parentList"})
您需要在
'data-parent'
tag("div", "collapse", {id: "card" + cardCount, 'data-parent': "#parentList"})
p.S.
你可以找到这些文件
已更新
此处不应使用Object.assign()
,因为它的主要功能是修改对象,而document.createElement()
返回一个DOM,该DOM提供了setAttibute
方法向其添加属性
因此,标记
应写为:
const tag = (tag, className, props = {}) => {
const el = document.createElement(tag);
el.className = className;
Object.keys(props).forEach(
key => el.setAttribute(key, props[key])
);
return el;
}
...
tag("div", "collapse", {id: "card" + cardCount, 'data-parent': "#parentList"})
我之前也尝试过,它没有给出任何错误,但是它没有将属性分配给div。更新了答案
Object.assign
用于对象,但您正在处理DOM元素,据我所知,设置数据属性的唯一方法是通过setAttribute
调用。我之前也尝试过,它没有给出任何错误,但它没有将属性分配给div。更新了答案Object.assign
用于对象,但您正在处理DOM元素,据我所知,设置数据属性的唯一方法是通过setAttribute
调用。