Javascript 避免克隆HTMLTemplate以检索innerHTML?
我在Javascript 避免克隆HTMLTemplate以检索innerHTML?,javascript,html,performance,underscore.js-templating,html5-template,Javascript,Html,Performance,Underscore.js Templating,Html5 Template,我在标记中有所有模板以提高运行时性能(避免渲染),但我想知道当我需要它们的内容来编译下划线模板时,是否正确使用了它们。我想要的是DOM元素的字符串内容,但如果不从影子DOM克隆它,我似乎无法访问它。我正在这样做: function compileTemplate(templateId){ var el = document.getElementById(templateId); var templateMarkup = _.unescape(el.cloneNode(true).
标记中有所有模板以提高运行时性能(避免渲染),但我想知道当我需要它们的内容来编译下划线模板时,是否正确使用了它们。我想要的是DOM元素的字符串内容,但如果不从影子DOM克隆它,我似乎无法访问它。我正在这样做:
function compileTemplate(templateId){
var el = document.getElementById(templateId);
var templateMarkup = _.unescape(el.cloneNode(true).innerHTML);
return compiledTemplate = _.template(templateMarkup);
}
这是可行的,但是有没有更有效的方法来避免克隆?您应该能够直接获得
innerHTML
字符串而无需克隆:
function compileTemplate(templateId) {
var el = document.getElementById(templateId);
var templateMarkup = _.unescape(el.innerHTML);
return compiledTemplate = _.template(templateMarkup);
}
函数compileTemplate(templateId){
var el=document.getElementById(templateId);
console.log(el.innerHTML)
}
功能测试(){
compileTemplate('T1')
}
内部HTML
编译
我完全不知道我是怎么逃过这一劫的。呵呵,实际上是无意的双关语:-)我想我只是使用了node.content,但什么都没有得到。