JS、JQuery和ExtJs动态创建DOM对象

做了个简单使用JavaScript、JQuery、ExtJs进行DOM对象创建的测试,主要是使用JavaScript、JQuery、ExtJs动态创建Table对象、动态Table数据填充、多选控制。
1.简单前台数据处理
界面有点丑了,没美化界面,主要是JavaScript动态创建Table。效果图:
JS、JQuery和ExtJs动态创建DOM对象

JS、JQuery和ExtJs动态创建DOM对象 JS、JQuery和ExtJs动态创建DOM对象

JS、JQuery和ExtJs动态创建DOM对象
前端代码:

JS、JQuery和ExtJs动态创建DOM对象
代码如下:(还是第4点的页面,再加上下面4个脚本函数)

  1 //JQuery的Ajax方式取得数据,添加全选按钮
  2         function JQueryAjax() {
  3             var message = "JQuery信息加载中......";
  4             var divMessage = "<div style='color:green;'>" + message + "</div>";
  5             $("#divContent").html(divMessage);
  6 
  7             $.ajax({
  8                 type: "POST",
  9                 url: "../Ajaxs/AjaxHandler.ashx",
 10                 async: true, //异步加载信息
 11                 dataType: "json",
 12                 success: function (data) {
 13                     var message = "JQuery信息加载成功!";
 14                     var divMessage = "<div style='color:green;'>" + message + "</div>";
 15                     $("#divContent").html(divMessage);
 16 
 17                     createJQueryTable(data);
 18                     JQueryCHKBoxTable(data);
 19                 },
 20                 error: function () { alert("请求失败!"); }
 21             });
 22         }
 23 
 24         function JQueryCHKBoxTable(data) {
 25             var tab = $("<table/>", { width: "300px", cellSpacing: "1", cellPadding: "1", border: "1" });
 26             $("<caption/>").text("JQuery CheckBox Table").appendTo(tab);
 27 
 28             var ths = $("<tr/>").appendTo(tab);
 29             var th0 = $("<th/>").appendTo(ths);
 30             $("<input/>", { type: "checkbox", id: "chAll" }).appendTo(th0);
 31             $("<th/>", { text: "名称" }).appendTo(ths);
 32             $("<th/>", { text: "简介" }).appendTo(ths);
 33 
 34             $(data).each(function (index, item) {
 35                 var tr = $("<tr/>").appendTo(tab);
 36                 var td0 = $("<td/>").appendTo(tr);
 37                 $("<input>", { type: "checkbox", name: "chSingle" }).appendTo(td0);
 38                 $("<td/>").html(item.Name).appendTo(tr);
 39                 $("<td/>").html(item.Html).appendTo(tr);
 40             });
 41 
 42             tab.appendTo($("#divContent"));
 43 
 44             $("#chAll").click(function (obj) {
 45                 var chSingles = $("input:[name='chSingle']");
 46                 $(chSingles).each(function (index, item) {
 47                     item.checked = $("#chAll")[0].checked; //$("#chAll"),查询出来的是一个集合
 48                 });
 49             });
 50 
 51             //            $("#chAll")[0].onclick = function () {//$("#chAll"),查询出来的是一个集合
 52             //                var chSingles = $("input:[name='chSingle']");
 53             //                $(chSingles).each(function (index, item) {
 54             //                    item.checked = $("#chAll")[0].checked;
 55             //                });
 56             //            }
 57         }
 58 
 59         //ExtJs的Ajax方式取得数据,添加全选按钮
 60         function ExtJsAjax() {
 61             var message = "ExtJs信息加载中......";
 62             var divMessage = "<div id='divMessage' style='color:green;'>" + message + "</div>";
 63             var divContent = Ext.get("divContent");
 64             Ext.DomHelper.append(divContent, divMessage);
 65 
 66             Ext.Ajax.request({
 67                 method: "POST",
 68                 url: "../Ajaxs/AjaxHandler.ashx",
 69                 async: true, //异步加载信息
 70                 success: function (response, opts) {
 71                     message = "ExtJs信息加载成功!";
 72                     var divMessage = "<div style='color:green;'>" + message + "</div>";
 73                     //Ext.get("divMessage").dom.innerHTML = message;
 74                     Ext.DomHelper.append(divContent, divMessage);
 75 
 76                     var data = Ext.util.JSON.decode(response.responseText);
 77                     createExtJsTable(data); //ExtJs创建Table
 78                     ExtJsCHKBoxTable(data); //ExtJs创建CheckBox的Table
 79                 },
 80                 failure: function (response, opts) { alert("请求失败!"); }
 81             });
 82         }
 83 
 84         //ExtJs的CheckBox Table
 85         function ExtJsCHKBoxTable(data) {
 86             var divContent = Ext.get("divContent");
 87             var tabTag = { tag: "table", style: "width:300px;border:1px solid blue", children: [{ tag: "caption", html: "ExtJs CheckBox Table"}] };
 88             var tab = Ext.DomHelper.append(divContent, tabTag); //将table追加到divContent
 89 
 90             //创建列头
 91             var ths = { tag: "tr", children: [
 92             { tag: "th", style: "border:1px solid blue", children: [
 93             { tag: "input", type: "checkbox", id: "chkAll" }
 94             ]
 95             },
 96             { tag: "th", style: "border:1px solid blue", html: "名称" },
 97             { tag: "th", style: "border:1px solid blue", html: "简介" }
 98             ]
 99             };
100             Ext.DomHelper.append(tab, ths); //将tr追加到table
101 
102             Ext.each(data, function (item) {//遍历数据
103                 var trTag = { tag: "tr", children: [
104                 { tag: "td", style: "border:1px solid blue", children: [{ tag: "input", type: "checkbox", name: "chkSingle"}] },
105                 { tag: "td", style: "border:1px solid blue", html: item.Name },
106                 { tag: "td", style: "border:1px solid blue", html: item.Html }
107                 ]
108                 };
109                 Ext.DomHelper.append(tab, trTag); //将tr追加到table
110             });
111 
112             Ext.get("chkAll").on("change", function (obj) {
113                 var chkSingles = Ext.query("input[name='chkSingle']"); //Dom集合
114                 Ext.each(chkSingles, function (item) {
115                     item.checked = Ext.get("chkAll").dom.checked;
116                 });
117             });
118 
119             //            Ext.get("chkAll").addListener("click", function (obj) {
120             //                var chkSingles = Ext.query("input[name='chkSingle']"); //Dom集合
121             //                Ext.each(chkSingles, function (item) {
122             //                    item.checked = Ext.get("chkAll").dom.checked;
123             //                });
124             //            });
125         }

6.使用JQuery和ExtJs简单创建对象
其实前面复杂的操作处理了,这个就比较简单,简单创建几个input对象。依然是第4点的页面,再加上下面2个脚本函数,代码如下:

 1   //JQuery创建其他对象
 2         function createJQueryObjs() {
 3             var divContent = $("#divContent").css("text-align", "left").append("<div>JQuery创建其他对象</div>");
 4 
 5             $("<input/>", { type: "button", val: "创建按钮" }).appendTo(divContent);
 6             $("<br/>").appendTo(divContent);
 7             $("<input/>", { type: "button", val: "添加样式", class: "buttonCSS" }).appendTo(divContent);
 8             $("<br/>").appendTo(divContent);
 9             $("<input/>", { type: "button", val: "添加事件", click: function () {
10                 alert($(this).val() + ",测试成功!");
11             }
12             }).appendTo(divContent);
13             $("<br/>").appendTo(divContent);
14             $("<input/>", { type: "text", id: "txt", val: '创建文本', css: { "background-color": "red"} }).appendTo(divContent);
15             $("<br/>").appendTo(divContent);
16             $("<input/>", { type: "radio", name: "sex", val: "男" }).appendTo(divContent);
17             $("<label/>", { text: "男" }).appendTo(divContent);
18             $("<input/>", { type: "radio", name: "sex", val: "女", checked: "true" }).appendTo(divContent);
19             $("<label/>", { text: "女" }).appendTo(divContent);
20             $("<br/>").appendTo(divContent);
21         }
22 
23         //ExtJs创建其他对象
24         function createExtJsObjs() {
25             var divContent = Ext.get("divContent");
26             Ext.DomHelper.append(divContent, "<hr/>ExtJs创建其他对象<br/>");
27             var buttonTag = { tag: "input", type: "button", value: "ExtJs按钮" };
28             Ext.DomHelper.append(divContent, buttonTag);
29             Ext.DomHelper.append(divContent, "<br/>");
30             var textTag = { tag: "input", type: "text", id: "testText", value: "ExtJs文本框" };
31             Ext.DomHelper.append(divContent, textTag);
32         }

View Code

使用原生JavaScript动态创建Table有些生硬,不太灵活;使用JQuery和ExtJs是各个API方法的调用,相对灵活些,代码也相对减小一些。
ExtJs一般不用Table来显示列表数据,一般直接用GridPanel直接绑定数据,显示数据,再加上CheckBox的多选功能。

 

原文链接:https://www.cnblogs.com/SanMaoSpace/p/3174644.html
本文来源 爱码网,其版权均为 原网址 所有 与本站无关,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源。

© 版权声明

相关文章