首页 新闻 搜索 专区 学院

这里面的!r怎么理解啊、、、、、

0
[待解决问题]

function fun2() {
            var ck = document.getElementById("ck");
            var table = document.getElementById("GridView1");
            var cks = table.getElementsByTagName("input");
            var r = false;
            for (var i = 0; i < cks.length; i++) {
                        if (cks[i].type == "checkbox" && cks[i].id !=" ck") {
                            if (cks[i].checked) {
                    r = true;
                    break;
                }
              }
            }
            if (!r) {
                alert("请选择");
            }

从结果来看里面的!r 应该是没有选择的时候就发生、、、但是我从里面看却有点不理解啊、、我理解的貌似就是!r就是对的啊、、求高手指点迷津啊、、

你的幸福、我在彼岸的主页 你的幸福、我在彼岸 | 初学一级 | 园豆:20
提问于:2011-12-07 22:10
< >
分享
所有回答(5)
0

关键在这里:

for (var i = 0; i < cks.length; i++) {
if (cks[i].type == "checkbox" && cks[i].id !=" ck") {
if (cks[i].checked) {
r = true;
break;
}
}
}

如果有一个选中,r就为true,然后就跳出循环了啊

artwl | 园豆:16536 (专家六级) | 2011-12-07 22:20

貌似前面定义的r值没用啊、、var r = false;我后面试了下好像r=false或true不影响啊、、而且后面的!r就等同于r=false这我就搞不懂了、、、为什么无论前面后面是R=true还是false后面的!r都成立、、、、

还有 function fun() {
           var ck = document.getElementById("ck");
           var table = document.getElementById("GridView1");
           var cks = table.getElementsByTagName("input");           
            for (var i = 0; i < cks.length; i++)
            {
                if (cks[i].type == "checkbox") {
                    cks[i].checked = ck.checked;                   
                }
            }
        }

 

这个cks[i].checked = ck.checked是不是理解成将ck.checked付给cks[i].checked啊、、、

@你的幸福、我在彼岸: 

你还是没看明白我回复中帖出的代码,建议再耐心看一下

至于cks[i].checked = ck.checked,这里ck.checked是一个bool值

支持(0) 反对(0) artwl | 园豆:16536 (专家六级) | 2011-12-07 22:38

@artwl: 

好吧、、你说的、、  如果有一个选中,r就为true,然后就跳出循环了啊、、也就是说如果一个也没有选中那么就是r为false、、那么后面的!r到底该怎么去理解么、、

至于cks[i].checked = ck.checked,这里ck.checked是一个bool值  、、、为什么是bool值有点不理解、、、

0

看看是不是有id不是ck的复选框被选中,有的话就弹出警告。

顾晓北 | 园豆:10420 (专家六级) | 2011-12-08 17:10

关键是!r那里有点不明白

@你的幸福、我在彼岸: 这又什么不好理解的?不就一个bool变量么?

支持(0) 反对(0) 顾晓北 | 园豆:10420 (专家六级) | 2011-12-08 23:24
0

!就是非的意思啊

当r=false时,!r=true

当r=true时!r=false

明白了吧?

比如这里的

if(!IsPostBack)

{

//当不是回发时触发,也就是在页面初次加载时触发

}

I day-day-up↑ | 园豆:155 (初学一级) | 2011-12-09 22:57
0

var r在for外面是false,当进入for循环,并且符合if条件的要求,就证明具有符合套件的内容,然后让r=true进行标识

在外面判断r如果不是true就给出提示框。

三分淑女范 | 园豆:218 (菜鸟二级) | 2011-12-27 14:12
0

额  就是一个遍历复选框  如果一个被选中  就修改状态为true  为下一步执行起判断作用

JQuery-Ch | 园豆:210 (菜鸟二级) | 2012-01-08 02:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册