简单人生
幻想指点江山,梦中激扬文字
导航
首页
新随笔
联系
聚合
管理
<
2007年10月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
统计
随笔 - 163
文章 - 40
评论 - 574
引用 - 0
公告
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(19)
给我留言
查看公开留言
查看私人留言
随笔分类
(74)
LINUX(1)
(rss)
Loving PHP(42)
(rss)
N-GAGE QD(4)
(rss)
烂点子(4)
(rss)
生活(11)
(rss)
程序人生(4)
(rss)
软件消息(8)
(rss)
文章分类
(2)
Learn Php(2)
(rss)
相册
Beyond
life
玩图
友逹們
NS团队
(rss)
关注PHP,关于程序,团队工作,WEB开发,2.0技术研究
st.MadMaN的勃客
(rss)
BT的域名,BT的勃客
幻影飞狐的BLOG
(rss)
狐狸的BLOG
来须苍真
(rss)
小来的日记本
百思家家居网站
(rss)
百思家家居网站
简单中国
(rss)
简单中国,人生简单,PHP研发,ajax技术研究,WEB2.0探讨
自恋的奥特慢
(rss)
关键字:PP、奥特慢、小帅歌、胖胖、自恋、凹凸曼
搜索
最新评论
1. re: CSS中background加载图片的路径问题
楼主这个写的好,我也疑惑好很久,今天没白来,呵呵
--苗谷人家赶黄草
2. re: 判断DIV的内容改变的方法
33333333
--33333
3. re: 中文转为unicode编码
@#
你那个只能在javascript中使用,这个是在网页里使用的。
--Test
4. re: 中文转为unicode编码
unicode编码不是\u53C1么,&#x是什么东西
--#
5. re: editplus的鸡肋功能:代码折叠
代码折叠aptana studio 好用,可是她找不到窗口分割功能~
--concm
评论排行榜
1. 《精通PHP+MYSQL应用开发》纠错(26)
2. CNNIC和3721不得不说的故事(22)
3. Flex SQLAdmin 现在开源了(17)
4. 推荐一个PHP IDE :PHPEDIT(15)
5. 今天,TM怎么了?(14)
JS全选checkBox最佳方案。原创哦
<
input
type
="button"
name
=""
value
="不计算长度"
onclick
="a()"
>
<
input
type
="button"
name
=""
value
="全选"
onclick
="b()"
>
<
input
type
="button"
value
="缓存"
onclick
="c()"
>
<
input
type
="checkbox"
name
="test[]"
value
="0"
>
测试测试
<
br
>
<
script
language
="JavaScript"
>
<!--
var
ca
=
new
Array();
function
a()
{
var
m
=
document.getElementsByName('test[]');
for
(
var
i
=
0
; i
<
m.length ; i
++
)
{
m[i].checked
==
true
?
m[i].checked
=
false
: m[i].checked
=
true
;
}
}
function
b()
{
var
m
=
document.getElementsByName('test[]');
var
l
=
m.length;
for
(
var
i
=
0
; i
<
l; i
++
)
{
m[i].checked
==
true
?
m[i].checked
=
false
: m[i].checked
=
true
;
}
}
function
c()
{
if
(ca.length
==
0
)
{
ca
=
cache();
}
cl
=
ca.length;
for
(
var
i
=
0
; i
<
cl; i
++
)
{
ca[i].checked
==
true
?
ca[i].checked
=
false
: ca[i].checked
=
true
;
}
}
function
cache()
{
var
m
=
document.getElementsByName('test[]');
var
cache
=
new
Array();
var
l
=
m.length;
for
(
var
i
=
0
; i
<
l; i
++
)
{
cache[i]
=
m[i];
}
return
cache;
}
//
-->
</
script
>
黑黑,至于那个input type="checkbox"的,你们就尽量复制吧,尽量不要超过1W,否则。。别怪我没有提醒你,当然了,也不需要把浏览器关掉,跑到外面抽根烟再回来就行了。
所以,我们要切实的记住,反正数组有长度的,坚决不能放在循环里面,而是先将这个长度取出来当成变量。PHP里也一样,循环数组的时候,先count数组的长度比较好。
当然了,我第三个采用了缓存,速度也是非常快的,比长度取好后再进行计算更快,因为连一次都不用取了(当然,除了第一次),全部扔给客户端了。
上面的例子还是比较方便的,因为,checkbox的 name值都一样,如果不一样怎么办???
只能这样
<
script
language
="JavaScript"
>
<!--
function
check()
{
var
inputs
=
document.getElementsByTagName('input');
var
inputsLen
=
inputs.length;
for
(
var
i
=
0
; i
<
inputsLen ; i
++
)
{
if
(inputs[i].type.toLowerCase()
==
'checkbox')
{
inputs[i].checked
==
true
?
inputs[i].checked
=
false
: inputs[i].checked
=
true
;
}
}
}
//
-->
</
script
>
缓存方法同上,这里就不多讨论了
请求加精……唉。没地方加精。
posted on 2007-10-17 17:44
简单人生
阅读(10044)
评论(13)
编辑
收藏
引用
所属分类:
Loving PHP
Comments
#
re: JS全选checkBox最佳方案。原创哦
991
Posted @ 2007-10-17 17:56
顶!呵呵。
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
991
Posted @ 2007-10-17 19:20
var l = m.length; //牛X语句
以前没有刻意去验证这两种写法有多大差距。
$num = getCount();
for($i=0;$i<$num;$i++){} 与
for($i=0;$i<getCount();$i++){}的区别
在这个例子很好体现。
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
991
Posted @ 2007-10-17 19:25
一不小心多复制了6w多,
b()也就2秒多,
c()一秒多。
呵呵。
加精~!
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
简单人生
Posted @ 2007-10-17 19:43
如果名字不一样呢?如果NAME名字不一样,你只能用TagName的时候,你就会知道这个差距是多大了……
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
简单人生
Posted @ 2007-10-17 21:38
又有朋友和我讲……完全可以
m[i].checked = !m[i].checked;
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
十三郎
Posted @ 2007-10-23 10:27
不知道怎么说,连最基本的功能实现都不是太好。
假如你选择一个,再点击全选,全选了吗?
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
简单人生
Posted @ 2007-10-29 13:11
@十三郎
那就是复选了。因为我没有判断它是否现在选中,我这个只是为了说明一下,如果同时选中这么多checkbox框的耗时情况。然后说明一下,写代码稍有一点规范性。本身我的代码中就是偷懒写法。。黑黑
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
高原
Posted @ 2007-12-17 07:03
真是学到东西了.不错,以后写程序要注意这方面的问题.
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦[未登录]
小可
Posted @ 2009-04-09 11:56
学习了
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦[未登录]
过客
Posted @ 2009-09-02 15:35
感谢感谢,真是受益
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
xxx
Posted @ 2009-09-23 17:43
我又要说LZ 了, 给你说个比较好的 array[i].checked=obj.checked;
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
王龙俊
Posted @ 2011-03-13 21:50
这个实现的是反选而不是全选。
要实现全选可以按照全选按钮的checked属性未参照flag,全选按钮checked,就将待选按钮就全部设置为checked。反之亦然。
回复
更多评论
#
re: JS全选checkBox最佳方案。原创哦
小五
Posted @ 2011-10-09 14:58
文章写的不错。。
下面是小建议。。呵呵
ca[i].checked=!ca[i].checked;
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。