本节书摘来自异步社区《jQuery、jQuery UI及jQuery Mobile技巧与示例》一书中的第3章,第3.9节,作者:【荷】Adriaan de Jonge , 【美】Phil Dutson著,更多章节内容可以访问云栖社区“异步社区”公众号查看
3.9 技巧:使用jQuery动态生成HTML
在前面的例子中,HTML几乎都是直接用文本字符串生成的。其实还可以使用jQuery来生成HTML。传入属性映射(property map)对象作为HTML元素的属性(attribute),在映射对象中可以嵌套HTML元素作为子元素。代码清单3-9演示了如何使用这种方式来生成HTML。
代码清单3-9 使用jQuery构建无序列表
00 <!DOCTYPE html>
02 <html lang="en">
03 <head>
04 <title>Generate HTML using jQuery</title>
05 <style>
06 /* 请将下列代码移至一个外部的
07 .css文件 */
08 .test {
09 background-color: yellow;
10 }
11 </style>
12 </head>
13 <body>
15 <p>Under this paragraph, you should see a yellow bulleted list</p>
17 <div id="append-to-placeholder">
18 </div>
20 <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
22 <script>
23 // 请将下列代码移至一个外部的.js文件中
24 $(document).ready(function() {
26 var htmlGen = function() {
27 return '<li>1</li><li>2</li>';
28 }
30 $('<p/>', {
31 class: 'test',
32 html: $('<ul/>', {html: htmlGen})
33 }).appendTo('#append-to-placeholder');
35 });
36 </script>
37 </body>
38 </html>
在这个例子中,第26~28行是“生成”HTML的函数。第32行引用了这个函数,它是会自动执行的。第30~32行的这种嵌套方式能够以一种更加动态的方法构建HTML元素。第31行的class的值可以是变量,可以按条件替换。