领悟旧事

Learned Helplessness
分类新闻>>技术文章>>
JavaScript操作:动态删除Table的内容,读取、设置Cookies,获取地址栏参数。
来源:http://www.xx0594.com/
时间:2017-4-2
作者:  浏览人数:881
用JS进行实用的操作,包括动态删除Table的内容,读取、设置Cookies,获取地址栏参数等。有详细的注释。
<script>
        function removeRow() {//删除Table表格中的一行。
            var chkObj = document.getElementsByName("chkArr");//每行表格前有一个CheckBox,名字为chkArr,创建代码为<input type='checkbox' name='chkArr' id='chkArr" + (x/2).ToString() + "' style='width:20px' />"
            var tabObj = document.getElementById("Favorite_Table");//所要查找的表格(表格内有要删除的行),
            var stext,shref,ss="";//定义几个变量。
            for (var k = 0; k < chkObj.length; k++) {//开始查找,以chkObj是基准,
                if (chkObj[k].checked) {//如果选定了,
                    tabObj.deleteRow(k);//删除该行,
                    k = -1;//从头再开始查找。
                }
            }
            var fobj = document.getElementsByName("Favorite");//表格中间内容,每一行的Name为Favorite(所有行可以同名,可设其ID不一样。)
            for (var k = 0; k < fobj.length; k++) {//开始查找,
                shref = fobj[k]["href"];//:fobj[k].getAttribute("href")==取得href段的内容,fobj[k].innerText=取得链接内容。
                if (ss != "") ss += "|";//开始合并,第一条前头不加|标志符,
                ss += escape(fobj[k].innerText + "|" + getQueryString(shref,"id"));//查找的结果用|进行合并,形式是:内容|链接的ID参数...
            }
            if (ss == "" || ss == null) setCookie("FavoriteInfo", ss, -10);//都被删除了,设置其过期了。
            else setCookie("FavoriteInfo", ss, 365);//否则设置其有效期为一年。
            //document.write(ss);
        }
        function getCookie(c_name) {
            if (document.cookie.length > 0) {  //先查询cookie是否为空,为空就return ""(this.getAttribute('href')
                c_start = document.cookie.indexOf(c_name + "=");  //通过String对象的indexOf()来检查这个cookie是否存在,不存在就为 -1
                if (c_start != -1) {
                    c_start = c_start + c_name.length + 1;  //最后这个+1其实就是表示"="号啦,这样就获取到了cookie值的开始位置
                    c_end = document.cookie.indexOf(";", c_start);  //其实我刚看见indexOf()第二个参数的时候猛然有点晕,后来想起来表示指定的开始索引的位置...这句是为了得到值的结束位置。因为需要考虑是否是最后一项,所以通过";"号是否存在来判断
                    if (c_end == -1) c_end = document.cookie.length;
                    return unescape(document.cookie.substring(c_start, c_end));  //通过substring()得到了值。想了解unescape()得先知道escape()是做什么的,都是很重要的基础,想了解的可以搜索下,在文章结尾处也会进行讲解cookie编码细节
                }
            }
            return "";
        }
        function setCookie(NameOfCookie, value, expiredays) {
            var ExpireDate = new Date();
            ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
            document.cookie = NameOfCookie + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
        }
        //用JS获取地址栏参数的方法(超级简单),shref为链接,name为该链接中的参数如ID,成功返回包含该参数的十六进制字符串,如shref=http://www.xx0594.com/article.aspx?ID=100,返回后100(十六进制)。
        function getQueryString(shref,name)
        {
            var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
            if (reg.test(shref)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
        }
    </script>
关闭窗口
 访问量:507975
任何第三方若要引用、转摘本站信息,均需征得本站书面同意,否则视为侵权。本站信息为个人观点,若因引用本站信息而产生的任何情况,均与本站无关。Email:linmutou@163.com
闽ICP备14017840号-2