您的位置:首页 > Web前端 > JavaScript

Js——代码位置不同,效果不同。

2009-12-22 14:37 281 查看
正确效果是:

单击选中


再次单击取消


正确的效果代码如下:

//全部取消代码。兼容IE,FF,Chrome
function checkAll() {
var ck = document.getElementsByTagName("input"); //找到页面上所有input节点
for (var i = 0; i < ck.length; i++) {
if (ck[i].type == "checkbox") {
ck[i].checked = false;
}
}
}
function ckeckedOne(obj) {
if (!obj.checked) {
checkAll();            //此处 checkAll()不能放在条件句外,效果不一样
}
else {
checkAll();
obj.checked = true;
}
}


如果使用这种代码:

//全部取消代码。兼容IE,FF,Chrome
function checkAll() {
var ck = document.getElementsByTagName("input"); //找到页面上所有input节点
for (var i = 0; i < ck.length; i++) {
if (ck[i].type == "checkbox") {
ck[i].checked = false;
}
}
}
function ckeckedOne(obj) {
checkAll();            //此处 checkAll()不能放在条件句外,效果不一样
if (!obj.checked) {
}
else {
//checkAll();
obj.checked = true;
}
}


将会出现一直是选不中状态。注意,此次的代码感觉上if...else...中都使用了checkAll()函数,于是将这个函数放在循环体外。这样的感觉只是一种想当然,仔细研究才会发现这样的逻辑是不对的。先执行和后执行的区别在此一目了然了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: