太陽雨
痛并快樂著
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反編譯(11070)
2.?添加xml文件自動提示方法,以spring配置文件為例(10546)
3.?Hibernate常見異常總結(不斷補充) (9255)
4.?Tomcat6下應用太多出現java.lang.OutOfMemoryError: PermGen space(8078)
5.?oracle的正則表達式(7811)
評論排行榜
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
小蟲旺福
閱讀(1377)
評論(0)
編輯
收藏
所屬分類:
Javascript相關
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
IE下的js調試工具 companion.js
讀書筆記之JavaScript對象繼承
讀書筆記之JavaScript的類編寫方法
40 個輕量級 JavaScript 庫
常用jsp技巧
用Javascript實現評估用戶輸入密碼的強度
表格操作類(添加,刪除,排序,上移,下移)
文本框輸入限制
Javascript 操作select控件大全(新增、修改、刪除、選中、清空、判斷存在等)
prototype.js 1.4版開發者手冊
Powered by:
BlogJava
Copyright © 小蟲旺福
主站蜘蛛池模板:
浑源县
|
凉山
|
瑞丽市
|
广东省
|
巴青县
|
漾濞
|
栾城县
|
嘉峪关市
|
汤阴县
|
西华县
|
马鞍山市
|
江川县
|
邮箱
|
滨州市
|
萨嘎县
|
盖州市
|
崇左市
|
滦南县
|
镇赉县
|
九龙县
|
青铜峡市
|
海原县
|
兴宁市
|
千阳县
|
宣威市
|
宁武县
|
渝中区
|
资阳市
|
安乡县
|
句容市
|
大连市
|
久治县
|
益阳市
|
屏边
|
浦北县
|
滦平县
|
陆河县
|
噶尔县
|
张掖市
|
栖霞市
|
剑河县
|