jQuery .find()没有看到一个元素

时间:2017-11-20 19:34:44

标签: javascript jquery

我有这个模板:

<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.怎么可能?

1 个答案:

答案 0 :(得分:0)

#work-template的内容是字符串,而不是DOM树。您正试图访问内容,就好像它是HTML标记一样,但它是未解析的。

如果你使用像jquery-templates这样的东西,你可以做你在这里尝试的事情:

$.tmpl($('#work-template').text(), {}).find('body').length;

其他替代方案是HandlebarsUnderscorewhole wealth of others

或者,正如凯文所说,你可以用普通的jQuery和$.parseHTML解析它,但你不能用令牌替换或循环做任何额外的幻想:

$.parseHTML($('#work-template').text()).find('body').length;