Jan 15
转自CSDN的王炜文章:

Jan 14
  
HTML DOM教程 42-HTML DOM Table 对象
  
    

1:Table 对象

    

  Table 对象代表一个 HTML 表格。

    

  在 HTML 文档中 <table> 标签每出现一次,一个 Table 对象就会被创建。

  
  
    

2:Table 对象的集合

                                                                                                                                                                                                                                                                                                                                    
集合描述IEFOW3C
cells[]返回包含表格中所有单元格的一个数组。511No
rows[]返回包含表格中所有行的一个数组。419Yes
tBodies[]返回包含表格中所有 tbody 的一个数组。4Yes
  
  
    

3:Table 对象的属性

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
属性描述IEFOW3C
align表在文档中的水平对齐方式。(已废弃)----
bgColor表在文档中的水平对齐方式。(已废弃)----
border设置或返回表格边框的宽度。419Yes
caption对表格的 <caption> 元素的引用。419Yes
cellPadding设置或返回单元格内容和单元格边框之间的空白量。419Yes
cellSpacing设置或返回在表格中的单元格之间的空白量。419Yes
frame设置或返回表格的外部边框。419Yes
id设置或返回表格的 id。419Yes
rules设置或返回表格的内部边框(行线)。419Yes
summary设置或返回对表格的描述(概述)。619Yes
tFoot返回表格的 TFoot 对象。如果不存在该元素,则为 null。419Yes
tHead返回表格的 THead 对象。如果不存在该元素,则为 null。419Yes
width设置或返回表格的宽度。419Yes
  
  
Dec 28

无限级可刷新Js树型菜单 dTree 2.05,作者:Geir Landrö

功能说明:

1、可设置无限级菜单
 2、不必使用框架
 3、可刷新,多页面内跳转不会影响菜单(IE6下好像有点问题)
 4、可限级创造子树
 5、支持目前主流浏览器:IE5,6,7,ff
 6、节点图片可设置切换图片效果

Dec 28
1.substring 方法

定义和用法

substring 方法用于提取字符串中介于两个指定下标之间的字符。

语法

stringObject.substring(start,stop)

参数     描述
start     必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop     可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

返回值

一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。

说明

substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
如果 start 或 end 为负数,那么它将被替换为 0。

2.substr 方法

定义和用法

substr 方法用于返回一个从指定位置开始的指定长度的子字符串。

语法

stringObject.substr(start [, length ])

参数    æè¿°
start   必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length 可选。在返回的子字符串中应包括的字符个数。

说明

如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringObject的最后。

举例:
var str = "0123456789";

alert(str.substring(0));------------"0123456789"
alert(str.substring(5));------------"56789"
alert(str.substring(10));-----------""
alert(str.substring(12));-----------""
alert(str.substring(-5));-----------"0123456789"
alert(str.substring(-10));----------"0123456789"
alert(str.substring(-12));----------"0123456789"
alert(str.substring(0,5));----------"01234"
alert(str.substring(0,10));---------"0123456789"
alert(str.substring(0,12));---------"0123456789"
alert(str.substring(2,0));----------"01"
alert(str.substring(2,2));----------""
alert(str.substring(2,5));----------"234"
alert(str.substring(2,12));---------"23456789"
alert(str.substring(2,-2));---------"01"
alert(str.substring(-1,5));---------"01234"
alert(str.substring(-1,-5));--------""

alert(str.substr(0));---------------"0123456789"
alert(str.substr(5));---------------"56789"
alert(str.substr(10));--------------""
alert(str.substr(12));--------------""
alert(str.substr(-5));--------------"0123456789"
alert(str.substr(-10));-------------"0123456789"
alert(str.substr(-12));-------------"0123456789"
alert(str.substr(0,5));-------------"01234"
alert(str.substr(0,10));------------"0123456789"
alert(str.substr(0,12));------------"0123456789"
alert(str.substr(2,0));-------------""
alert(str.substr(2,2));-------------"23"
alert(str.substr(2,5));-------------"23456"
alert(str.substr(2,12));------------"23456789"
alert(str.substr(2,-2));------------""
alert(str.substr(-1,5));------------"01234"
alert(str.substr(-1,-5));-----------""  
Apr 10
   工厂模式:
      åˆçº§å¼€å‘者可能会这样定义对象:
      var  obj =  new Object();
       obj.name = "hero";
        obj.showName=function (){alert(this.name);}
      è¿™é‡Œå­˜åœ¨ä¸€ä¸ªé—®é¢˜å°±æ˜¯å¦‚果我们要在多个地方用obj对象,可能在程序中类似的代码要写好多遍,于是产生了工厂方法
       function createObj()
       {
            var obj =  new Object();
            obj.name="hero";
            obj.showName=function (){alert(this.name);}
            return obj;
      }
      var obj1 = createObj();
      var obj2 = createObj();
     和另外一种方法 构造函数法
       function obj (name)
       {
               this.name=name;
               this.showName= function (){alert(this.name);}
        
       }

  
把生成对象的代码封装起来,避免出现重复new的代码,当然也可以进一步改进,就是createObj传递一些参数,而不是给obj赋默认固定值:
            function createObj(name)
       {
            var obj =  new Object();
            obj.name=name;
            obj.showName=function (){alert(this.name);}
            return obj;
      }
      var obj1 = createObj("hero");
      var o'b'j2=createObj("dby");
但是存在一个问题,就是我们每次调用createObj函数都会创建新的函数 showName.意味着每个对象都有自己版本的showName,所以要改进避开这个问题.
        function showName()
       {
               alert(this.name)
        }
        function createObj(name)
       {
            var obj =  new Object();
            obj.name=name;
            obj.showName=showName;
            return obj;
      }
    
       这样就解决了 重复创建函数的问题, 哈哈哈,大功告成 ,亲一个.
      
      åŽŸåž‹æ–¹å¼:
          ä¸»è¦æ˜¯åˆ©ç”¨å¯¹è±¡çš„prototype属性.
         function obj()
         {}
         obj.prototype.name="hero";
         obj.prototype.showName=function()
         {
               alert(this.name);
         }
         看起来似乎比刚才的工厂还完美,但是 有一个问题,该函数没有构造函数,属性是通过prototype指定的,这一点在实际应用中很让人头疼,所有的实例的属性都一样实在是不能让人接受.尤其还存在一个安全隐患,那就是当对象中有引用时,例如   加上这样一段
obj.prototype.nameArray = new Array("hero","dby");
       然后
          obj1 = new obj();
          obj2 = new obj();
          obj1.nameArray.push("lxw");
          åœ¨obj2çš„nameArray中将也会看到这个属性,因为两个对象的nameArray指向的是同一个引用.
           所以这种方式并不是理想方法.
    éœ€è¦ 改进
      ç»“合构造函数,在构造函数定义属性,用原型定义方法
      ä¾‹å¦‚
      fuction obj(name)
      {
             this.name = name
             this.nameArray = new Array("hero","dby");
      }
      obj.prototype.showName = function(){alert(this.name)}
所有的非函数属性都在构造函数里创建,函数属性用prototype方式创建,obj1 中改变nameArray的值,不会影响到obj2对象的nameArray的值, 而且只有一个showName函数,所以没有内存浪费.
    åŸºæœ¬ä¸Šå®Œç¾Žäº†,剩下的基本都是一下其他的修饰了.有兴趣的可以自己改着玩玩.
     笔者在这里加上一个单例 玩了一下:
     function obj (name)
     {
            this.name = name;
            this.nameArray=new Array("hero","dby");
            if(typeof  obj._initialized=='undefined')
            {
                     obj.prototype.showName=function(){alert(this.name);}
                     obj._initialized="true";
            }
     }  
     其实不算是单例,  åªä¸è¿‡æ˜¯åœ¨æž„造对象的时候,先判断一个属性是否被定义,如果没有定义,那么用原型方法继续定义对象,如果已经定义了属性,那么就不在重复定义函数了. 该prototype方法只被创建一次,病赋值一次.
    åˆå·®ä¸å¤šå®Œç¾Žäº†,大功告成  ,再亲一个.
Pages: 4/10 First page Previous page 1 2 3 4 5 6 7 8 9 10 Next page Final page [ View by Articles | List ]