Javascript pure.js必须与现有页面节点一起使用吗? 测试页 $(文档).ready(函数(){ var-p; p=$(“”); 指令={“li”:“错误”}; 数据={“错误”:“名称长度必须介于3到250个字符之间”}; p、 提供(数据、指令); $(“.result”)。在(p)之后; });

Javascript pure.js必须与现有页面节点一起使用吗? 测试页 $(文档).ready(函数(){ var-p; p=$(“”); 指令={“li”:“错误”}; 数据={“错误”:“名称长度必须介于3到250个字符之间”}; p、 提供(数据、指令); $(“.result”)。在(p)之后; });,javascript,templates,pure-js,Javascript,Templates,Pure Js,上面的代码没有将数据插入到p对象中。但是下面的代码可以工作 <html lang="en"> <head> <meta charset="utf-8"> <script type='text/javascript' src="js/jquery/jquery-min.js"></script> <script type='text/javascript' src="js/pure/pure.js">

上面的代码没有将数据插入到p对象中。但是下面的代码可以工作

<html lang="en">
  <head>
    <meta charset="utf-8">
    <script type='text/javascript' src="js/jquery/jquery-min.js"></script>
    <script type='text/javascript' src="js/pure/pure.js"></script>
  </head>
  <body>
    <div class='result'>Test Page</div>

    <script type='text/javascript'>
      $(document).ready(function(){
        var p;
        p = $("<div><ul><li></li></ul></div>");
        directives = {"li": "error"};
        data = {"error": "name must be between 3 and 250 characters long"};
        p.render(data, directives);
        $(".result").after(p);
        });
    </script>
  </body>
</html>

测试页
$(文档).ready(函数(){
var-p;
p=$(“
    • ”); $(“.result”)。在(p)之后; 指令={“li”:“错误”}; 数据={“错误”:“名称长度必须介于3到250个字符之间”}; p、 提供(数据、指令); });
如果要插入数据,jquery对象(这里是p)必须操作现有的html标记吗?它不像后者那样合理,我希望第一个代码插入数据,但如何?
谢谢,:)

render
始终返回一个节点。如果模板在DOM中,它将替换为渲染节点

您可以这样做:

<html lang="en">
  <head>
    <meta charset="utf-8">
    <script type='text/javascript' src="js/jquery/jquery-min.js"></script>
    <script type='text/javascript' src="js/pure/pure.js"></script>
  </head>
  <body>
    <div class='result'>Test Page</div>

    <script type='text/javascript'>
      $(document).ready(function(){
        var p;
        p = $("<div><ul><li></li></ul></div>");
        $(".result").after(p);
        directives = {"li": "error"};
        data = {"error": "name must be between 3 and 250 characters long"};
        p.render(data, directives);
        });
    </script>
  </body>
</html>

p = p.render(data, directives);
$(".result").after(p);
$(".result").after( p.render(data, directives) );