Pure.js 必须与现有页面节点一起使用

pure.js must work with the existing page nodes?

本文关键字:节点 一起 js Pure      更新时间:2023-09-26
<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>

上面的代码不会将数据插入 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>");
        $(".result").after(p);
        directives = {"li": "error"};
        data = {"error": "name must be between 3 and 250 characters long"};
        p.render(data, directives);
        });
    </script>
  </body>
</html>

似乎插入数据,jquery对象(这里,它是p)必须操作现有的html标签吗?像后者那样不合理,我希望第一个代码插入数据,但是如何?谢谢,:)

render始终返回一个节点。如果模板位于 DOM 中,则会将其替换为呈现的节点。

您可以这样做:

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

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