CompositeElementLite-more.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:3k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.CompositeElementLite
  3.  */
  4. Ext.apply(Ext.CompositeElementLite.prototype, {
  5. addElements : function(els, root){
  6.         if(!els){
  7.             return this;
  8.         }
  9.         if(typeof els == "string"){
  10.             els = Ext.Element.selectorFunction(els, root);
  11.         }
  12.         var yels = this.elements;        
  13.     Ext.each(els, function(e) {
  14.          yels.push(Ext.get(e));
  15.         });
  16.         return this;
  17.     },
  18.     
  19.     /**
  20.     * Clears this composite and adds the elements returned by the passed selector.
  21.     * @param {String/Array} els A string CSS selector, an array of elements or an element
  22.     * @return {CompositeElement} this
  23.     */
  24.     fill : function(els){
  25.         this.elements = [];
  26.         this.add(els);
  27.         return this;
  28.     },
  29.     
  30.     /**
  31.      * Returns the first Element
  32.      * @return {Ext.Element}
  33.      */
  34.     first : function(){
  35.         return this.item(0);
  36.     },   
  37.     
  38.     /**
  39.      * Returns the last Element
  40.      * @return {Ext.Element}
  41.      */
  42.     last : function(){
  43.         return this.item(this.getCount()-1);
  44.     },
  45.     
  46.     /**
  47.      * Returns true if this composite contains the passed element
  48.      * @param el {Mixed} The id of an element, or an Ext.Element, or an HtmlElement to find within the composite collection.
  49.      * @return Boolean
  50.      */
  51.     contains : function(el){
  52.         return this.indexOf(el) != -1;
  53.     },
  54.     /**
  55.     * Filters this composite to only elements that match the passed selector.
  56.     * @param {String} selector A string CSS selector
  57.     * @return {CompositeElement} this
  58.     */
  59.     filter : function(selector){
  60.         var els = [];
  61.         this.each(function(el){
  62.             if(el.is(selector)){
  63.                 els[els.length] = el.dom;
  64.             }
  65.         });
  66.         this.fill(els);
  67.         return this;
  68.     },          /**
  69.     * Removes the specified element(s).
  70.     * @param {Mixed} el The id of an element, the Element itself, the index of the element in this composite
  71.     * or an array of any of those.
  72.     * @param {Boolean} removeDom (optional) True to also remove the element from the document
  73.     * @return {CompositeElement} this
  74.     */
  75.     removeElement : function(keys, removeDom){
  76.         var me = this,
  77.         els = this.elements,     
  78.      el;     
  79.     Ext.each(keys, function(val){
  80.     if ((el = (els[val] || els[val = me.indexOf(val)]))) {
  81.      if(removeDom){
  82.                     if(el.dom){
  83.                         el.remove();
  84.                     }else{
  85.                         Ext.removeNode(el);
  86.                     }
  87.                 }
  88.      els.splice(val, 1);     
  89. }
  90.     });
  91.         return this;
  92.     }    
  93. });