jQuery動態生成html元素的幾種方法

風靈使發表於2018-04-25

一般來說,可以通過以下幾種方式動態建立html元素:

1、使用jQuery建立元素的語法
2、把動態內容存放到陣列中,再遍歷陣列動態建立html元素
3、使用模版

1.使用jQuery動態建立元素追加到jQuery物件上。

<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>

  <title></title>

  <script src="Scripts/jquery-1.10.2.js"></script>

  <script type="text/javascript">

    $(function() {

      $('<input />', {

        id:'cbx',

        name:'cbx',

        type:'checkbox',

        checked:'checked',

        click:function() {

          alert("點我了~~");

        }

      }).appendTo($('#wrap'));

    });

  </script>

</head>

<body>

  <div id="wrap"></div>

</body>

執行效果如下圖所示:
這裡寫圖片描述

2.先把內容放到陣列中,然後遍歷陣列拼接成html

<head>

<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>

  <title></title>

  <script src="Scripts/jquery-1.10.2.js"></script>

  <style type="text/css">

    table {

      border: solid 1px red;

      border-collapse: collapse;

    }

    td {

      border: solid 1px red;

    }

  </style>

  <script type="text/javascript">

    $(function() {

      vardata = ["a","b","c","d"];

      varhtml = '';

      for(vari = 0; i < data.length; i ++) {

        html += "<td>"+ data[i] + "</td>";

      }

      $("#row").append(html);

    });

  </script>

</head>

<body>

  <table>

    <tr id="row"></tr>

  </table>

</body>

</html>

執行效果如下圖所示:
這裡寫圖片描述

3.使用模版生成html

<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>

  <title></title>

  <script src="Scripts/jquery-1.10.2.js"></script>

  <script type="text/javascript">

    $(function() {

      vara = buildHTML("a","我是由模版生成的", {

        id:"myLink",

        href:"http://www.baidu.com"

      });

      $('#wrap1').append(a);

      varinput = buildHTML("input", {

        id:"myInput",

        type:"text",

        value:"我也是由模版生成的~~"

      });  

      $('#wrap2').append(input);

    });

    buildHTML = function(tag, html, attrs) {

      // you can skip html param

      if(typeof(html) != 'string') {

        attrs = html;

        html = null;

      }

      varh = '<'+ tag;

      for(attr inattrs) {

        if(attrs[attr] === false)continue;

        h += ' ' + attr + '="'+ attrs[attr] + '"';

      }

      returnh += html ? ">"+ html + "</"+ tag + ">": "/>";

    };

  </script>

</head>

<body>
  <div id="wrap1"></div>

  <div id="wrap2"></div>
</body>

執行效果如下圖所示:
這裡寫圖片描述

相關文章