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
调用。