太阳雨
痛并快乐着
BlogJava
首页
新随笔
联系
聚合
管理
67 Posts :: 3 Stories :: 33 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔分类
hibernate相关(9)
j2se(9)
javaEE(9)
Javascript相关(10)
spring相关(6)
struts相关
ubuntu相关(2)
windows相关
个人经验(12)
个人随笔(4)
数据库(6)
设计模式
随笔档案
2012年7月 (1)
2010年4月 (5)
2010年3月 (4)
2010年2月 (5)
2010年1月 (1)
2009年11月 (2)
2009年10月 (5)
2009年8月 (1)
2009年7月 (4)
2009年4月 (1)
2009年3月 (2)
2009年2月 (2)
2009年1月 (1)
2008年12月 (7)
2008年11月 (13)
2008年10月 (8)
2008年6月 (5)
文章档案
2008年11月 (1)
2008年10月 (1)
2008年6月 (1)
搜索
最新评论
1. re: 使用Digester,对象和xml进行转换
同一节点下解析成多个对象 求解
--flyaway
2. re: Hibernate常见异常总结(不断补充)
评论内容较长,点击标题查看
--re: Hibernate常见异常总结(不断补充)
3. re: Hibernate常见异常总结(不断补充)
评论内容较长,点击标题查看
--re: Hibernate常见异常总结(不断补充)
4. re: Iframe跨域访问的问题[未登录]
IEKUAYU
--sdfsd
5. re: Iframe跨域访问的问题
是的方式的
--打发士大夫
6. re: MyEclipse8.5汉化
感谢楼主,真的汉化 成功了。。。哈哈哈
--xiqi
7. re: MyEclipse8.5汉化
@1234565
好二
--大三大四的
8. re: 在Java web服务器内使用url rewrite(链接)
fdsafdsa
--ed
9. re: XFire与Spring结合的几种方式
@羽
xfire已经很久没有用过了,而且已经转变为CXF了,同学还是看下CXF吧,而且支持注解很方便,要与时俱进嘛
--楼主
10. re: XFire与Spring结合的几种方式
您好,我的wsdl文档是生成了,但是客户端调用service的时候,service里面的entityManager没有被初始化,为null,spring是不是还有配置啊????
--羽
阅读排行榜
1. eclipse中集成jad反编译(11044)
2. 添加xml文件自动提示方法,以spring配置文件为例(10532)
3. Hibernate常见异常总结(不断补充) (9242)
4. Tomcat6下应用太多出现java.lang.OutOfMemoryError: PermGen space(8064)
5. oracle的正则表达式(7789)
评论排行榜
1. MyEclipse8.5汉化(11)
2. eclipse中集成jad反编译(7)
3. Tomcat6下应用太多出现java.lang.OutOfMemoryError: PermGen space(4)
4. XFire与Spring结合的几种方式(2)
5. Iframe跨域访问的问题(2)
表格操作类(添加,删除,排序,上移,下移)
<
html
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
>
<
style
type
="text/css"
>
*
{}
{
font-size
:
14px
}
button
{}
{
margin
:
3px
}
</
style
>
<
script
type
="text/javascript"
>
var
mytable
=
null
,mytable2
=
null
;
window.onload
=
function
()
{
mytable
=
new
CTable(
"
tbl
"
,
10
);
mytable2
=
new
CTable(
"
tbl2
"
,
6
);
}
Array.prototype.each
=
function
(f)
{
for
(
var
i
=
0
;i
<
this
.length;i
++
) f(
this
[i],i,
this
)}
function
$A(arrayLike)
{
for
(
var
i
=
0
,ret
=
[];i
<
arrayLike.length;i
++
) ret.push(arrayLike[i]);
return
ret
}
Function.prototype.bind
=
function
()
{
var
__method
=
this
, args
=
$A(arguments), object
=
args.shift();
return
function
()
{
return
__method.apply(object, args.concat($A(arguments)));
}
}
function
CTable(id,rows)
{
this
.tbl
=
typeof
(id)
==
"
string
"
?
document.getElementById(id):id;
if
(rows
&&
/^
\d
+
$
/
.test(rows))
this
.addrows(rows)
}
CTable.prototype
=
{
addrows:
function
(n)
{
//
随机添加n个tr
new
Array(n).each(
this
.add.bind(
this
))
}
,
add:
function
()
{
//
添加1个tr
var
self
=
this
;
var
tr
=
self.tbl.insertRow(
-
1
),td1
=
tr.insertCell(
-
1
),td2
=
tr.insertCell(
-
1
),td3
=
tr.insertCell(
-
1
);
var
chkbox
=
document.createElement(
"
INPUT
"
)
chkbox.type
=
"
checkbox
"
chkbox.onclick
=
self.highlight.bind(self)
td1.appendChild(chkbox)
td1.setAttribute(
"
width
"
,
"
35
"
)
td2.innerHTML
=
Math.ceil(Math.random()
*
99
)
td3.innerHTML
=
Math.ceil(Math.random()
*
99
)
}
,
del:
function
()
{
//
删除所选tr
var
self
=
this
$A(self.tbl.rows).each(
function
(tr)
{
if
(self.getChkBox(tr).checked) tr.parentNode.removeChild(tr)}
)
}
,
up:
function
()
{
//
上移所选tr
var
self
=
this
var
upOne
=
function
(tr)
{
//
上移1个tr
if
(tr.rowIndex
>
0
)
{
self.swapTr(tr,self.tbl.rows[tr.rowIndex
-
1
])
self.getChkBox(tr).checked
=
true
}
}
var
arr
=
$A(self.tbl.rows).reverse()
if
(arr.length
>
0
&&
self.getChkBox(arr[arr.length
-
1
]).checked)
{
for
(
var
i
=
arr.length
-
1
;i
>=
0
;i
--
)
{
if
(self.getChkBox(arr[i]).checked)
{
arr.pop()
}
else
{
break
}
}
}
arr.reverse().each(
function
(tr)
{
if
(self.getChkBox(tr).checked) upOne(tr)}
);
}
,
down:
function
()
{
var
self
=
this
var
downOne
=
function
(tr)
{
if
(tr.rowIndex
<
self.tbl.rows.length
-
1
)
{
self.swapTr(tr,self.tbl.rows[tr.rowIndex
+
1
]);
self.getChkBox(tr).checked
=
true
;
}
}
var
arr
=
$A(self.tbl.rows)
if
(arr.length
>
0
&&
self.getChkBox(arr[arr.length
-
1
]).checked)
{
for
(
var
i
=
arr.length
-
1
;i
>=
0
;i
--
)
{
if
(self.getChkBox(arr[i]).checked)
{
arr.pop()
}
else
{
break
}
}
}
arr.reverse().each(
function
(tr)
{
if
(self.getChkBox(tr).checked) downOne(tr)}
);
}
,
sort:
function
()
{
//
排序
var
self
=
this
,order
=
arguments[
0
];
var
sortBy
=
function
(a,b)
{
if
(
typeof
(order)
==
"
number
"
)
{
//
数字,则按数字指示的列排序
return
Number(a.cells[order].innerHTML)
>=
Number(b.cells[order].innerHTML)
?
1
:
-
1
;
//
转化为数字类型比较大小
}
else
if
(
typeof
(order)
==
"
function
"
)
{
//
为程序,按 程序的返回结果排序
return
order(a,b);
}
else
{
return
1
;
}
}
$A(self.tbl.rows).sort(sortBy).each(
function
(x)
{
var
checkStatus
=
self.getChkBox(x).checked;
self.tbl.firstChild.appendChild(x);
if
(checkStatus) self.getChkBox(x).checked
=
checkStatus;
}
);
}
,
rnd:
function
()
{
//
随即选择几行tr
var
self
=
this
,selmax
=
0
,tbl
=
self.tbl;
if
(tbl.rows.length)
{
selmax
=
Math.max(Math.ceil(tbl.rows.length
/
4
),
1
);
//
选择的行数不超过tr数的1/4
$A(tbl.rows).each(
function
(x)
{
self.getChkBox(x).checked
=
false
;
self.restoreBgColor(x)
}
)
}
else
{
return
alert(
"
无数据可以选
"
)
}
new
Array(selmax).each(
function
()
{
var
tr
=
tbl.rows[Math.floor(Math.random()
*
tbl.rows.length)]
self.getChkBox(tr).checked
=
true
;
self.highlight(
{target:self.getChkBox(tr)}
)
}
)
}
,
highlight:
function
()
{
//
设置tr的背景色
var
self
=
this
;
var
evt
=
arguments[
0
]
||
window.event
var
chkbox
=
evt.srcElement
||
evt.target
var
tr
=
chkbox.parentNode.parentNode
chkbox.checked
?
self.setBgColor(tr):self.restoreBgColor(tr)
}
,
swapTr:
function
(tr1,tr2)
{
//
交换tr1和tr2的位置
var
target
=
(tr1.rowIndex
<
tr2.rowIndex)
?
tr2.nextSibling:tr2;
var
tBody
=
tr1.parentNode
tBody.replaceChild(tr2,tr1);
tBody.insertBefore(tr1,target);
}
,
getChkBox:
function
(tr)
{
//
从tr得到 checkbox对象
return
tr.cells[
0
].firstChild
}
,
restoreBgColor:
function
(tr)
{
tr.style.backgroundColor
=
"
#ffffff
"
}
,
setBgColor:
function
(tr)
{
tr.style.backgroundColor
=
"
#c0c0c0
"
}
}
function
f(a,b)
{
var
sumRow
=
function
(row)
{
return
Number(row.cells[
1
].innerHTML)
+
Number(row.cells[
2
].innerHTML)}
;
return
sumRow(a)
>
sumRow(b)
?
1
:
-
1
;
}
</
script
>
</
head
>
<
body
>
<
button
onClick
="javascript:mytable.rnd()"
>
随机选择行
</
button
>
<
button
onClick
="javascript:mytable.add()"
>
添加一行
</
button
>
<
button
onClick
="javascript:mytable.del()"
>
删除选定行
</
button
>
<
button
onClick
="javascript:mytable.up()"
>
上移选定行
</
button
>
<
button
onClick
="javascript:mytable.down()"
>
下移选定行
</
button
>
<
button
onClick
="javascript:mytable.sort(1)"
>
按第一列数字排序
</
button
>
<
button
onClick
="javascript:mytable.sort(f)"
>
按每行数据的和排序
</
button
>
<
table
width
=100%
>
<
tr
>
<
td
valign
="top"
><
table
border id
="tbl"
width
="80%"
></
table
></
td
>
<
td
valign
="top"
><
table
border id
="tbl2"
width
="80%"
></
table
></
td
>
</
tr
>
</
table
>
<
button
onClick
="javascript:mytable2.rnd()"
>
随机选择行
</
button
>
<
button
onClick
="javascript:mytable2.add()"
>
添加一行
</
button
>
<
button
onClick
="javascript:mytable2.del()"
>
删除选定行
</
button
>
<
button
onClick
="javascript:mytable2.up()"
>
上移选定行
</
button
>
<
button
onClick
="javascript:mytable2.down()"
>
下移选定行
</
button
>
<
button
onClick
="javascript:mytable2.sort(2)"
>
按第二列数字排序
</
button
>
<
button
onClick
="javascript:mytable2.sort(f)"
>
按每行数据的和排序
</
button
>
</
body
>
</
html
>
posted on 2008-12-02 13:21
小虫旺福
阅读(1363)
评论(0)
编辑
收藏
所属分类:
Javascript相关
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
IE下的js调试工具 companion.js
读书笔记之JavaScript对象继承
读书笔记之JavaScript的类编写方法
40 个轻量级 JavaScript 库
常用jsp技巧
用Javascript实现评估用户输入密码的强度
表格操作类(添加,删除,排序,上移,下移)
文本框输入限制
Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)
prototype.js 1.4版开发者手册
Powered by:
BlogJava
Copyright © 小虫旺福