我从数据库中得到一个数组,我试图创建一个元素,但是它不起作用。这是我的简化代码
var objecthtml = {
id : 1,
html: '<div> </div>',
css: 'colonne'
}
console.log(objecthtml.html);
console.log(objecthtml);
var myArray = [objecthtml];
console.log(myArray);
let block = document.createElement(objecthtml.html);
这是错误消息:
InvalidCharacterError:字符串包含无效字符
答案 0 :(得分:2)
document.createElement使用HTML标记名称作为参数。如果要使用对象属性中的HTML代码创建元素,则可以创建容器元素并将HTML代码放入其#if !pi
属性中。
innerHTML
答案 1 :(得分:0)
您可以引用documentation,期望的参数是tagName
,即div
,但是您传入了<div> </div>
var newDiv = document.createElement("div");
因此,您可以尝试遵循
var objecthtml = {
id : 1,
html: '<div> </div>',
css: 'colonne'
}
let rgx = /^(.+\s)|(?:=["'\s]?)(.*)(?:["'\s>]?)/g;
let fullTag = rgx.exec(objecthtml.html)[0].trim();
var realTag = fullTag.substring(1,fullTag.length-1);
let block = document.createElement(realTag );
答案 2 :(得分:0)
要创建元素,您只需使用tag
之类的p, div, h1
名称即可。
并且例外情况清楚地表明了标签名称错误
var objecthtml = {
id : 1,
html: 'div',
css: 'colonne'
}
console.log(objecthtml.html);
console.log(objecthtml);
var myArray = [objecthtml];
console.log(myArray);
let block = document.createElement(objecthtml.html);