>

데이터베이스에서 배열을 가져 와서 요소를 만들려고하지만 작동하지 않습니다. 이것은 내 단순화 코드입니다

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: String contains an invalid character

  • 답변 # 1

    document.createElement는 HTML 태그 이름을 매개 변수로 사용합니다. 객체의 속성에있는 HTML 코드로 요소를 만들려면 컨테이너 요소를 만들고 해당 HTML 코드를 innerHTML 에 넣을 수 있습니다  속성.

    var objecthtml = {
    	id : 1,
    	html: '<div>Oh yeah</div>',
    	css: 'colonne'
    }
    let block =  document.createElement("div");
    block.innerHTML = objecthtml.html;
    document.body.appendChild(block);
    
    

  • 답변 # 2

    요소를 만들려면 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);
    
    

  • 답변 # 3

    문서를 참조 할 수 있습니다. 매개 변수는 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 );
    
    

관련 자료

  • 이전 python - 데이터베이스에 의해 반환되는 데이터 구조를 구문 분석하려고 시도하지만 가장 좋은 방법은 확실하지 않습니다
  • 다음 html - 태그의 href 자바 스크립트 함수, 호출자 태그를 참조하는 방법