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

 

2.JavaScript动态创建DOM对象
主要是使用JavaScript动态创建按钮、文本、链接、表格、加上CheckBox的表格(简单实现全选),这里Table的数据是页面数据,不是服务端数据,主要是与后面的JQuery和ExtJs请求服务端数据动态创建Table的差异比较。
界面有点丑,主要是看JavaScript动态创建Dom对象,效果图:

3.JavaScript简单效果实现
主要是自定义分割文本、Timer时钟使用、JS粘贴板使用、Div随鼠标移动的简单测试,这个稍稍好看些,效果图:

4.使用XMLHttp进行Ajax调用动态创建Table
主要是使用XMLHttpRequest的AJAX请求服务端数据,服务端使用一般处理程序(*.ashx)处理,并使用JavaScriptSerializer和DataContractJsonSerializer进行对象的序列化操作,转换为JSON字符串数据发送客户端,客户端再进行反序列化操作,进行动态Table创建和数据填充。
注意:前端JQuery和ExtJs脚本的引入以及服务端两个序列化所在的命名空间(System.Web.Script.Serialization和System.Runtime.Serialization.Json)的引入。

  <script src="../../Scripts/ext-base.js" type="text/javascript"></script>
<script src="../../Scripts/ext-all.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>

效果图:

前端代码:

服务端代码:

5.使用JQuery和ExtJs进行Ajax调用动态创建Table
主要是对JQuery、ExtJs的Ajax使用以及如何使用JQuery、ExtJs动态创建Table对象填充数据,简单实现CheckBox的全选操作。服务端的代码是第4点的一般处理程序。效果图:

代码如下:(还是第4点的页面,再加上下面4个脚本函数)

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

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

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

 
 

JS、JQuery和ExtJs动态创建DOM对象的更多相关文章

  1. JS,Jquery,ExtJs不同脚本动态创建DOM对象

    好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...

  2. jQuery – 7.动态创建Dom、删除节点

    动态创建Dom节点     1.使用$(html字符串)来创建Dom节点     2.append方法用来在元素的末尾追加元素     案例:动态生成网站列表     3.prepend,在元素的开始 ...

  3. JavaScript DOM编程基础精华02(window对象的属性,事件中的this,动态创建DOM,innerText和innerHTML)

    window对象的属性1 window.location对象: window.location.href=‘’;//重新导航到新页面,可以取值,也可以赋值. window.location.reloa ...

  4. 给js动态创建的对象绑定事件

    1.使用原生JS动态为动态创建的对象绑定事件 1-1.创建一个function,用来兼容IE8以下浏览器添加事件 function addEvent(el, type, fn) {  if(el.ad ...

  5. js进阶---12-11、jquery如何给动态创建出来的元素绑定事件

    js进阶---12-11.jquery如何给动态创建出来的元素绑定事件 一.总结 一句话总结:通过事件委托的方式,通过on方法 1.on方法在事件绑定的时候,data方式带额外参数时,字符串参数和其它 ...

  6. Vue.js源码解析-Vue初始化流程之动态创建DOM

    目录 前言 一._update 如何判断是初始化还是更新操作? 二.patch 2.1 patch 定义 2.2 初始化的 patch 三.createElm 动态创建DOM 3.1 创建组件节点 3 ...

  7. 基于jquery的表格动态创建,自动绑定,自动获取值

    最近刚加入GUT项目,学习了很多其他同事写的代码,感觉受益匪浅. 在GUT项目中,经常会碰到这样一个问题:动态生成表格,包括从数据库中读取数据,并绑定在表格中,以及从在页面上通过jQuery新增删除表 ...

  8. 动态创建dom元素

    效果图如上所示: 思维nav:就相当于qq空间发表动态(说说),在输入框里输入内容,点击提交(发表),内容就呈现在下面的动态栏里.我这里是准备写一个招聘的app,大家可以随便想象下哪些情况会遇到动态创 ...

  9. jquery利用appendTo动态创建元素

    动态创建元素可以说是DOM中常做的事情,下面我来介绍在jquery中利用appendTo来动态创建元素,有需要的朋友可参考参考. 当HTML字符串是没有属性的元素是, 内部使用document.cre ...

随机推荐

  1. Linux学习笔记——怎样在交叉编译时使用共享库

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

  2. inux上iptables防火墙的基本应用教程

    iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装.清除iptables规则.iptables只开放指定端口.iptables屏蔽指定ip.ip段及解封. ...

  3. 在线Youtube视频下载,修改文本,剪切制作动画的最新方法

    刚刚(减去编写本文章的时间,大概20分钟前吧)在看国外最新技术资讯的时候发现有个方法可以让我们快速去下载Youtube上面的视频,不敢独享,我自己都没有怎么玩就所以立刻post上来广而告之,希望对大家 ...

  4. 对于GetBuffer() 与 ReleaseBuffer() 的一些分析

    先 转载一段别人的文章 CString类的这几个函数, 一直在用, 但总感觉理解的不够透彻, 不时还实用错的现象. 今天抽时间和Nico一起分析了一下, 算是拨开了云雾: GetBuffer和Rele ...

  5. 查看oracle数据库服务器的名字

    原文:查看oracle数据库服务器的名字 windows 中 1. select name from v$database ; 直接运行就可以查看了, 2.查看tnsnames.ora 的连接,有个S ...

  6. 轻量级IOC框架Guice

    java轻量级IOC框架Guice Guice是由Google大牛Bob lee开发的一款绝对轻量级的java IoC容器.其优势在于: 速度快,号称比spring快100倍. 无外部配置(如需要使用 ...

  7. hdu - 4979 - A simple math problem.(可反复覆盖DLX + 打表)

    题意:一种彩票共同拥有 N 个号码,每注包括 M 个号码,假设开出来的 M 个号码中与自己买的注有 R 个以上的同样号码,则中二等奖,问要保证中二等奖至少要买多少注(1<=R<=M< ...

  8. at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)

    最近在做一个WinForm的项目. 使用vs2013开发. 数据库使用的是oracle. 在本地写了一个webservice .测试正常.发布到服务器的时候.就是提示了错误. 打开服务器上的日志.看到 ...

  9. 为mongodb加上权限

    我们知道mysql在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全 ...

  10. jQuery 1.9 移除了 $.browser 的替代方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support . 在更新的 2.0 版本中,将不再支持 IE 6/7/8. ...