接着昨天的学习今天继续进行jQuery的学习实践。

大体上是明白怎么个回事,但是具体用起来就不是看的时候那么回事了。我想我还是把我奋斗了一个半天还要多的代码贴了,以纪念这段比较深刻的教训。

<div>
    <div><input type="checkbox" id="email_gru" checked="checked" name="group" value="gru"/>gru</div>
    <div>
   
    <div><input type="checkbox" id="email_22_gru" checked="checked" name="email" value="aaa@qq.com" /> aaa@qq.com</div>
   
    <div><input type="checkbox" id="email_23_gru" checked="checked" name="email" value="aaa@qq.com" /> aaa@qq.com</div>
   
    <div><input type="checkbox" id="email_24_gru" checked="checked" name="email" value="cc.qq.com" /> cc.qq.com</div>
   
    <div><input type="checkbox" id="email_25_gru" checked="checked" name="email" value="ss.qq.com" /> ss.qq.com</div>
   
    <div><input type="checkbox" id="email_26_gru" checked="checked" name="email" value="zzzz.qq.com" /> zzzz.qq.com</div>
    
     </div> 
    </div>
   
    <div>
    <div><input type="checkbox" id="email_杀毒软件" checked="checked" name="group" value="杀毒软件"/>杀毒软件</div>
    <div>
   
    <div><input type="checkbox" id="email_32_杀毒软件" checked="checked" name="email" value="99@kaka.com" /> 99@kaka.com</div>
   
    <div><input type="checkbox" id="email_33_杀毒软件" checked="checked" name="email" value="ruixing@ruixing.com" /> ruixing@ruixing.com</div>
   
    <div><input type="checkbox" id="email_34_杀毒软件" checked="checked" name="email" value="kabasiji@kaba.com" /> kabasiji@kaba.com</div>
   
    <div><input type="checkbox" id="email_35_杀毒软件" checked="checked" name="email" value="avast@avast.com" /> avast@avast.com</div>
   
    <div><input type="checkbox" id="email_36_杀毒软件" checked="checked" name="email" value="jinshan@jinshan.com" /> jinshan@jinshan.com</div>
    
     </div> 
    </div>
   
    <div>
    <div><input type="checkbox" id="email_同桌" checked="checked" name="group" value="同桌"/>同桌</div>
    <div>
   
    <div><input type="checkbox" id="email_27_同桌" checked="checked" name="email" value="88888@qq.com" /> 88888@qq.com</div>
   
    <div><input type="checkbox" id="email_28_同桌" checked="checked" name="email" value="888@qq.com" /> 888@qq.com</div>
   
    <div><input type="checkbox" id="email_29_同桌" checked="checked" name="email" value="888@qq.com" /> 888@qq.com</div>
   
    <div><input type="checkbox" id="email_30_同桌" checked="checked" name="email" value="888@qq.com" /> 888@qq.com</div>
   
    <div><input type="checkbox" id="email_31_同桌" checked="checked" name="email" value="668@163.com" /> 668@163.com</div>
    
     </div> 
    </div>
   
    <input id="bt1" type="button" value="click"/>
    <script language="javascript" type="text/javascript">
        $(document).ready(function () {
            $("#bt1").click(function () {
                var str = '';
                $("input[type='checkbox'][@checked][name='email']").each(function () {
                    if ($(this).attr("checked")) {
                        str = str + $(this).val()+';';
                    }
                });
                alert(str == '' ? 'please check ' : str);
            });
        });
       
        </script>
        <script language="javascript" type="text/javascript">
            $(document).ready(function () {
                $("input[type='checkbox'][name='group']").change(function () {
                    var str = $(this).val();
                    var bo = $(this).attr("checked");
                    $("input[id$='"+str+"']").each(function () {
                        $(this).attr("checked", bo);
                    });
                }
            );
            }
        );
        </script>

数了数一共写的代码不过十几行但就是让我痛苦了好长的时间,看来可以让人痛苦的不是多么庞大的东西,很小的一步过不去,就会让人心里不舒坦啊,时间长了指不定怎样呢。所以不可以轻视任何事情。页面的功能是显示用户的通讯录,通讯录中有分组,各分组中有联系人,在页面加载完成后,会看到,每一个分组下面的对应的联系人的各项内容,每一项是checkbox的形式,当点击checkbox的选择框时,如果点击的是组名,对应的改组成员全选或者取消全选,用jQuery的选择器。

  出现的问题:刚开始没有注意到的是,each的使用,因为是和多个项有关的,所以需要循环调用;再就是需要查找以每组组名结尾的项,其中的的dollars符号应该写在等号的左边,我写在了右边,对了才怪呢,就这一个问题就够郁闷的,所以说计算机是一门严谨的学科,少一个分号,或者把符号的位置颠倒就会出问题,务必要严谨小心。