【发布时间】:2021-08-29 12:03:50
【问题描述】:
我正在尝试使用 jQuery 从一个数组中创建一个 JS 中的 HTML 元素,该数组包含一个带有元素标记、类和其他属性或样式的数据对象。
let array = [{el:'div',class:'card',attr:{id:'abc'},css:{display:'block'}}];
let array2 = [{el:'div'}]
const element = (array) => {
let el = [];
Object.values(array).forEach((val)=>{
el.push($(`<${val.el}>`).addClass(val.class).attr(val.attr).css(val.css))
})
return el;
}
element(array) // Works fine;
element(array2) //Throws error because we are not feeding any value to .addClass ...
当数组中的所有键都可用时,它可以正常工作,但当其中任何一个键丢失时,它就不起作用。
错误 > 未捕获的类型错误:无法读取未定义的属性“nodeType”
我该如何解决这个问题?谢谢
【问题讨论】:
-
array是语法错误。请修正你的例子。 -
“忽略拼写错误” - 不。修复它们。
-
您问题中的脚本没有抛出上述错误(修复语法错误后):jsfiddle.net/ycs8k05r
-
@Andreas 试试这个
array = [{el:'div'}]你会得到错误。我已经用适当的数组语法对其进行了测试。 -
是的,我会得到一个错误。但不是你问题中提到的那个。请解决您的问题,以便它 a) 完全有效并且 b) 引发您提到的错误
标签: javascript html jquery