Extjs中的一些特殊用法

来源:互联网 发布:淘宝买家信誉升级 编辑:程序博客网 时间:2024/05/21 23:55

 1.文本节点的处理

        var textNode=document.createTextNode(data)

        这儿的data可以是带标签的string类型数据


       Node.nodeType==3判断是文本节点时

       可以通过var text=Node.text || Node.textContent  //前IE 后FF获取文本节点的文本


      在option集合中   通过selectObject.option[index].text获取选项的文本


2 RegExp的特殊使用

    2.1通过传入的字符串创建正则式:

         把传入的字符串转化为可用的正则式,作为RegExp构造方法的参数

         escapeRe : function(s) {
                 return s.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1");
         },

       这儿replace的第二个参数 replacement   是\\$1表示仅仅匹配第一个子匹配同时返回值带有一个\  如:

      "John Smith".replace(/(\w+)\s(\w+)/, "\\$1"); 返回的是Jorn但为什么没有返回\Jorn,还不清楚

 

    2.2 Extjs中判断selector的类型

         var reg=/^(#)?([\w-\*]+)/;
         var str="div>a";
         var result=str.match(reg);
         for (var i=0;result[i];i++){
                         alert(result[i]);

         }

       这儿则正式的涵义是 是否有一个或0个以#开头的随后是一个或多个  单词或-或*的匹配

       这儿的结果是div  如果str="#div>a";结果是#div  # div

 

      2.3 匹配行样式表

        nthRe = /(\d*)n\+?(\d*)/    d*匹配0个或多个数字 \+?表示0个或一个+

 

      2.4  ?:pattern匹配

         官方解释:

        (?:pattern)匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有   用。  如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。

      Extjs中此句   /^(?:scope|delay)$/  

      那么 /^(?:scope|delay)$/ 和 /^(scope|delay)$/ 相比,后者的括号可以获取子匹配,而前者不获取子匹配

  2.5 String.replace(regexp,replacement)当第二个参数为fn  实例

       function regReplace(){
                          var str="我是猪,我是猪";
                          str.replace(/我/g,function(){
                                     for(var i=0;i<arguments.length;i++){
                                            alert(arguments[i])
                                    }
                                    return "你";
                       });
         }
       regReplace()

      这儿的因为使用g进行全局匹配,所以function会多次调用,每次调用会传递三个参数,1匹配的字符 2匹配字符的index  3进行匹配的字符串

     此方法在Extjs中的使用

     Ext.onReady(function() {
                     var s = String.format('<div>姓名:{0}<br/>年龄:{1}</div>',"大漠穷秋","26");
                           document.body.innerHTML=s;
     });
      Ext扩展的String中的format方法
                  format : function(format){
                           var args = Ext.toArray(arguments, 1);
                                         return format.replace(/\{(\d+)\}/g, function(m, i){
                                                                                                                return args[i];
                                        });

     }

3 使用new 后function的类型为object ,没有new 时是function,所以通过判断js对象是否实例化

 

4内置的原型对象,在使用new 实例化后 指向var xx=function(){}xx的原型对象,所以通过prototype添加方法时,只有实例化才能引用prototype中的方法

 

5.js中component的bubble和capture 使用bubble和capture都必须在supercomponent上设置,才回产生bubble和capture的效果,并且只针对diretct subcomponent才会产生效果

 

 6.js中排序的实现

   在Array原生函数中有一个sort(fn),fn中有两个参数  实例:

       var fn=function(a,b){
                        if(typeof(a)=="string"){
                        return a.localeCompare(b);
            }
           return a-b;
      };
      var arr=['张三','李四','王二','麻子'];
      arr.sort(fn);
       alert(arr);

在Extjs中ArrayStore中filterBy(fn,scope)的实现类似,在实现上可以参考java的Comparitor接口的实现

 

 

   

        


 

         

     

      

        

     



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两岁摔倒头着地怎么办 马桶大便冲不下去怎么办 脚丫吧里起泡痒怎么办 脚受伤后肿了怎么办 摔到了腿受伤了怎么办 骑车摔倒了肿了怎么办 生活大冒险老婆失踪了怎么办 手机qq图裂了怎么办 qq发的图裂了怎么办 抖音账号搬运多怎么办 别人搜不到我QQ怎么办 qq号被限制解封怎么办 买的桌子会晃怎么办 车子座椅皮坏了怎么办 裤子被椅子刮了怎么办 脚麻了被别人动怎么办 毛孔又粗又黑怎么办 手臂睡觉压麻了怎么办 睡觉压的胳膊麻怎么办 摔跤摔到腰肿了怎么办 牛奶喝多了拉稀怎么办 doc文档下载是乱码怎么办 家人被教练技术骗了怎么办 十个月宝宝不爱喝水怎么办 离婚后孩子找爸爸怎么办 离婚后孩子要找爸爸怎么办 断奶期间胸涨的难受怎么办 断奶胸涨的很疼怎么办 过了麦季身上老痒怎么办 过麦时候皮肤痒怎么办 颈部起红疙瘩痒怎么办 脚底痒身上痒该怎么办 生完孩子屁股疼怎么办 pr打开工程文件无响应怎么办 娃娃和老师有隔阂了怎么办 大人字写得不好怎么办 不会写好看的字怎么办 无限量流量限速了怎么办 长期化妆后皮肤变黄怎么办 手机密码忘记了打不开怎么办 手机解压包不知道密码怎么办