我有这个模板:
<script id="work-template" type="text/template">
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body></body>
</html>
</script>
尝试使用此代码获取body
元素后:
base_html = $('#work-template').clone();
alert(base_html.find('body').length);
但是,它返回0.怎么可能?
答案 0 :(得分:0)
#work-template
的内容是字符串,而不是DOM树。您正试图访问内容,就好像它是HTML标记一样,但它是未解析的。
如果你使用像jquery-templates这样的东西,你可以做你在这里尝试的事情:
$.tmpl($('#work-template').text(), {}).find('body').length;
其他替代方案是Handlebars,Underscore和whole wealth of others。
或者,正如凯文所说,你可以用普通的jQuery和$.parseHTML
解析它,但你不能用令牌替换或循环做任何额外的幻想:
$.parseHTML($('#work-template').text()).find('body').length;