簡體   English   中英

使用vanilla javascript將es6模板字符串轉換為html元素

[英]Convert a es6 template string to html element using vanilla javascript

有沒有一種方法可以使用普通的舊版香草javascript(無框架)將html模板字符串轉換為Html元素?

這就是我嘗試過的事情:

function renderBody(selector = body, template) {
    const prop.text = 'foobar';
    const templateString = `<div id='test'>${prop.text}</div>`
    const test = document.createElement('div');
    test.innerHTML = templateString;
    document.querySelector(selector).appendChild(test);
}

這個實現工作,但它使用innerHTML並添加一個額外的包裝div。 沒有額外的div ,還有辦法嗎?

你可以使用insertAdjacentHTML

 function renderBody(selector = 'body', template) { const prop = { text: 'foobar' }; const html = `<div id='test'>${prop.text}</div>`; document.querySelector(selector).insertAdjacentHTML('beforeend', html); } renderBody(); 
 div { border: 1px solid } 
 <h1>test</h1> 

我不會調用該字符串變量templateString,因為沒有變量是模板字符串。 模板字符串是文字表示法,但在評估時,它們是純字符串。 變量中沒有任何東西具有一些神奇的“模板性”痕跡。

我剛剛發現了DomParser 這就是我在尋找的東西:

let doc = new DOMParser().parseFromString('<div><b>Hello!</b></div>', 'text/html');

圖片來源: https//davidwalsh.name/convert-html-stings-dom-nodes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM