常用方法和属性(Common methods and attributes)

ExtJs中的对象

Ext.Component

Ext组件对象,表示一个可渲染的组件。

Ext.dom.Element

Ext元素对象,通常称为Element对象,Ext.dom.Element是对Html Dom元素的封装。在官方API文档中提到的Element,指的就是Ext元素对象,可别当成dom元素。Html Dom被封装为Element,Element被封装为Component组件。获取HtmlDom有两种方式:Element.dom或Element.getDom()。

Ext.dom.CompositeElement

Ext.dom.Element的集合。

Ext命名空间下的类型和方法

Ext类

Ext.onReady(callBack,scope,delay)
//delay:调用回调的延迟毫秒数,指定此参数貌似会形成死循环
//文档装载完毕将执行回调

/*===============编码解码===============*/
Ext.encode(obj)
//obj:Array | Json
//将Array或Json包装成Json格式的字符

Ext.decode(obj)
//obj:ArrayString | JsonString
//将Array字符或Json字符解码为本地Array或Json对象

Ext.urlAppend(urlhead, queryString)
//urlhead:url头部
//queryString:查询字符串
//为url追加查询字符串

Ext.urlEncode(url)
//将url字符编码,以便可以在网络间传输

/*===============选择元素、组件、存储器===============*/
Ext.select(selector)
//获取Element元素,返回CompositeElementLite[ ]

Ext.query(selector)
//获取Html Dom元素,返回Dom元素数组

Ext.get(domID | dom | Element )
//将参数所指转化为Element并返回它
var el = Ext.get("box");

Ext.fly(domID | dom | Element)
//将参数所指转化为Element并返回它,与get区别仅在于fly方法会将结果自动返回到第一次定义的变量里
var el = Ext.fly("box");
Ext.fly("box2");
Ext.fly("box3");
alert(el.dom.id); //box3

Ext.getDoc()
//获取html节点的Element表示

Ext.getBody()
//获取Body节点的Element表示 
    
Ext.getDom(domID | dom | Element)
//获取Element的dom表示,如果需要直接操纵dom元素,此方法非常实用

Ext.getCmp(ComponentID)
//根据Ext组件的ID获取该组件对象,得到组件后可调用以set为前缀的方法去设置组件的各种属性,更多组件的查找方式参看:ExtJS 4.2 组件的查找方式

Ext.getStore(storeID)
//根据存储器的storeId获取存储器对象

/*===============迭代===============*/
Ext.each(x, fn)
//x:Array | CompositeElement  
//fn:function(item、index、allItems)  
//等同的方法还有:
//ArrayObj.forEach、Ext.each、Ext.Array.forEach、Ext.Array.each,
//数组对象只有forEach方法,其余类似的方法则是Ext或Ext.Array的静态方法
//退出当前循环不能使用continue,可用return作为替代
//类似的方法还有:
//Ext.Array.some(),回调函数返回为true,就终止整个循环
//Ext.Array.every(),回调函数返回为false,就终止整个循环

/*===============其它操作===============*/
Ext.typeOf(x)
//测试参数的数据类型,可能的值如下:
//undefined | null | string | number | boolean | date | function | object | array | regexp | element(dom元素) | textnode | whitspace(空的文本节点)

Ext.clone(x)
//x:object | array | dom 
//克隆出独立的对象

 
Ext.isEmpty(x, [ allowString ] )
//x:对象 | 字符 
//allowString:字符是否允许空
//测试对象是否为空
//如果x=string,就需要提供allowString
//如果allowString是true,则返回false,否则返回true

/*===============销毁对象、组件===============*/
Ext.destroy(x)
//销毁组件,包括它的子组件和它注册过的事件。可一次性删除多个x,参数以逗号隔开

Ext.destroyMembers(obj, member1, member2)
//删除对象成员

/*===============为元素注册事件===============*/
Ext.addBehaviors(Json)
//Json:{ "css选择器" : fn }
//为Html元素绑定事件
//为id为box的元素,其包含的span、p的类名为pClass的元素绑定click事件
//事件名以@开头
Ext.addBehaviors({
    "#box span,p.pClass@click": function (e) { }
});

Ext.Object类

操作对象

Ext.Object.toQueryString(string,bool)
//对字符进行Url格式化编码
//bool:默认false,如果为true则启用递归转码
var student={
    name:"sam",
    age:32,
    score:[{name:"语文",score:90},{name:"数学",score:80}]
}
var str = Ext.Object.toQueryString(student,true);
//输出:
"name=sam&age=32&score%5B0%5D%5Bname%5D=%E8%AF%AD%E6%96%87&score%5B0%5D%5Bscore%5D=90&score%5B1%5D%5Bname%5D=%E6%95%B0%E5%AD%A6&score%5B1%5D%5Bscore%5D=80"

Ext.Object.fromQueryString(string, bool)
//对字符进行Url格式解码,
//bool:默认false,如果为true则启用递归解码
var student = {
    name: "sam",
    age: 32,
    score: [{ name: "语文", score: 90 }, { name: "数学", score: 80 }]
}
//将student编码之后得到str
var str = "name=sam&age=32&score%5B0%5D%5Bname%5D=%E8%AF%AD%E6%96%87&score%5B0%5D%5Bscore%5D=90&score%5B1%5D%5Bname%5D=%E6%95%B0%E5%AD%A6&score%5B1%5D%5Bscore%5D=80";
var str = Ext.Object.fromQueryString(str, true);
Ext.Msg.alert('', str.score[0].name + "<br>" + str.score[1].name);

Ext.Object.toQueryObjects(obj)
//将对象转化为数组,对构造查询字符串有点用
var student = {
    name: "sam",
    age: 32,
    score: [{ name: "语文", score: 90 }, { name: "数学", score: 80 }]
}
var ary = Ext.Object.toQueryObjects("student", student, true);
var msg = "[<br>";
ary.forEach(function (item) {
    msg += "<span style='margin-left:30px;'></span>" + Ext.encode(item) + "<br>";
});
msg += "]";
document.write(msg);

 

Ext.Object.getValues(x)
//获取给定对象所有的值所组成的数组

Ext.Object.getKey(obj,value)
//根据value获取对象的key

Ext.Object.getKeys(obj)
//获取对象所有的key,key以数组返回

Ext.Function类

调用函数

Ext.Function.createDelayed(callBack,delay)
//delay:毫秒
//在指定时间后执行回调
var fn = Ext.Function.createDelayed(function () {
    alert("");
}, 2000);
fn(); //2秒后弹出

Ext.Function.defer(callBack,delay)
//delay:毫秒
//在指定时间后执行回调,与createDelayed区别仅在于不需要手动调用fn
var fn = Ext.Function.defer(function () {
    alert("");
}, 2000);

Ext.DomQuery类

过滤Html Dom Element

Ext.DomQuery.filter(HtmlDomArray, selector, nonMatches)
//selector:选择器
//nonMatches:bool,是否不取相反的结果
//从数组中筛选出符合条件的Html Dom元素,返回匹配后的新数组

<div id="sam" class="box divbox"></div>
<div id="korn" class="box divbox"></div>
<div id="leo" class="box"></div>

Ext.onReady(function () {
    var els = Ext.query(".box");
    els = Ext.DomQuery.filter(els, "div[class='divbox']", true);
    Ext.each(els, function (item, index, allItems) {
        alert(item.id); //sam、korn
    });
});

Ext.domHelper类

操纵Dom节点

Ext.domHelper.append(parent, x, bool)
//parent:htmlString | Ext Dom Element | Html Dom Element
//x:htmlString | Html Dom Element | Ext Dom Element | [ ] ,[ ]格式如下:
//[ { tag:'Html标签名'  , cls : 'Html标签的类名'  , id: 'Html的ID' , type : '表单元素的type' , cn:[子元素1,子元素2] , name : '表单元素的name' , value : '表单元素的值或标签包含文本',html:'子html标签名称' }]
//bool:是否返回Ext Dom Element,默认false,默认返回Html Dom Element
//Json'sforHtmlSet :
//将x添加到parent所包含的末尾
//示例:
Ext.DomHelper.append("box", "<span><b>hello</b></span>", true);
//等同于
Ext.DomHelper.append("box", [
    {
        tag: 'span', cn: [
            { tag: 'b', cls: 'fontClass', id: 'fontID', html: 'hello world' }
        ]
    }
], true);

Ext.domHelper.applyStyles(Html Dom Element | Ext Dom Element, Json)
//设置css
//示例:
Ext.DomHelper.applyStyles("box", {
    'background-color':"red",
    width: 200,
    height: 200,
    border:"1px solid black"
});

Ext.domHelper.insertAfter(x,y)
//x:htmlString | Html Dom Element | Ext Dom Element
//y:htmlString | Html Dom Element | Ext Dom Element | [ ],[ ]格式如下:
//[ { tag:'Html标签名'  , cls : 'Html标签的类名'  , id: 'Html的ID' , type : '表单元素的type' , cn:[子元素1,子元素2] , name : '表单元素的name' , value : '表单元素的值或标签包含文本',html:'子html标签名称' }]
//将y插入到x之后

Ext.domHelper.insertBefore(x,y)
//x:htmlString | Html Dom Element | Ext Dom Element
//y:htmlString | Html Dom Element | Ext Dom Element | [ ],[ ]格式如下:
//[ { tag:'Html标签名'  , cls : 'Html标签的类名'  , id: 'Html的ID' , type : '表单元素的type' , cn:[子元素1,子元素2] , name : '表单元素的name' , value : '表单元素的值或标签包含文本',html:'子html标签名称' }]
//将y插入到x之前

Ext.domHelper.insertHtml(where,x,y)
//x:htmlString | Html Dom Element | Ext Dom Element
//y:htmlString | Html Dom Element | Ext Dom Element | [ ],[ ]格式如下:
//[ { tag:'Html标签名'  , cls : 'Html标签的类名'  , id: 'Html的ID' , type : '表单元素的type' , cn:[子元素1,子元素2] , name : '表单元素的name' , value : '表单元素的值或标签包含文本',html:'子html标签名称' }]
//where:条件
//将y插入到x的由where指示的某个位置
//where可能的值:beforeBegin(插入到x的开始标签之前)afterBegin(插入到x的开始标签之后)afterEnd(插入到x的结束标签之后)beforeEnd(插入到x的结束标签之前)

Ext.domHelper.markup(x) 
//x:htmlString | Html Dom Element | Ext Dom Element
//获取该对象的html块

Ext.domHelper.overwrite(x,y) 
//x:htmlString | Html Dom Element | Ext Dom Element
//用y替换x包含的所有html

Ext.domHelper.createTemplate(x) 
//x:htmlCode
//创建一个html模板。此方法的好处在于简化需要重复创建相同结构的html,达到复用
//示例:
var htmlTemplate = Ext.DomHelper.createTemplate("<div id='{id}'>{value}</div>");//创建模板,定义占位变量
htmlTemplate.append(Ext.get("box"), { tag:"div",id: "childBox1",value:"hello" });
htmlTemplate.append(Ext.get("box"), { tag:"div",id: "childBox2", value: "world" });

Ext.dom.Element对象

dom
//获取当前对象的Html Dom Element表示

inputEl
//获取当前对象包含的输入框元素,返回一个Ext Dom Element,可调用它的getValue方法获取到输入框的数据

setStyle(Json)
//设置该对象的css样式,类似的有applyStyles
//示例:
Ext.get("box").setStyle({
    background: "red",
    margin: 10
});

getCount( ) 
//获取Element数组元素的总数

hide( )    
//隐藏Element。

highlight( ) 
//使Element背景高亮,呈现从显黄到渐隐的动画

on(eventType,fn) 
//eventType是事件触发方式,fn是事件处理函数
//示例:
Ext.get("TestBox").on("click", function () {
    Ext.MessageBox.alert("", "event click!");
});

Ext.Component对象

inputEl
//获取组件所包含的类型为input的Ext Dom Element
//示例
Ext.getCmp("xxx").inputEl.getValue();//获取id为xxx的组件,获取该组件包含的输入框的值

add(component)
//将指定组件插入到当前组件的子组件集合的末尾处

insert(number,component)
//将指定组件插入到组件的子组件集合的指定索引处
//示例
var newItem = { xtype: "displayfield", value: "未选择任何权限", hideLabel: true, labelWidth: 130, fieldStyle:"color:white;", style: 'color:white;background:red;'};
Ext.getCmp("formEdit").insert(0,newItem);

getEl( )
//获取包含了当前组件的最顶层的组件的Ext.dom.Element对象

destroy() 
//销毁自身,包括子组件和注册的事件

add(component | component[ ])
//为当前组件添加子组件
//子组件可以在服务端创建,打包成Json字符,通过ajax传输到客户端,在父组件渲染完成之前将Json插入到父组件中

update(x)
//更新组件的html配置项,如果已经配置过html项,则用x替换原来的html

focus()
//使组件得到焦点

  

 

Javascript - 学习总目录

Javascript - ExtJs - 常用方法和属性的更多相关文章

  1. JavaScript String常用方法和属性

    在JavaScript中,字符串是不可变的,如果使用索引对字符串进行修改浏览器不会报错,但也没有任何效果.JavaScript提供的这些方法不会修改原有字符串的内容,而是返回一个新的期望的字符串. 一 ...

  2. JavaScript数组方法速查,32个数组的常用方法和属性

    JavaScript数组方法速查手册极简版 http://30ke.cn/doc/js-array-method JavaScript数组方法速查手册极简版中共收了32个数组的常用方法和属性,并根据方 ...

  3. Javascript - ExtJs - Ext.form.Panel组件

    FormPanel组件(Ext.form.FormPanel) logogram:Ext.form.Panel | xtype:form Ext.form.Panel.配置 frame }//旗下所有 ...

  4. Javascript - ExtJs - GridPanel组件

    GridPanel组件(Ext.grid.GridPanel)logogram:Ext.grid.Panel | xtype:gridpanel 此类派生自Ext.Panel,创建表格需要两个必须的对 ...

  5. javascript DOM 常用方法

    前端HTML+CSS+JS流程导图:https://www.processon.com/view/link/5ad1c2d0e4b0b74a6dd64f3c HTML+CSS+Javascript+j ...

  6. JavaScript 数组 常用方法(二)

    写在前面:续接上篇 JavaScript 数组 常用方法 数组常用方法第二弹来了: some && every 描述: every()与some()方法都是JS中数组的迭代方法. so ...

  7. JavaScript数组常用方法解析和深层次js数组扁平化

    前言 数组作为在开发中常用的集合,除了for循环遍历以外,还有很多内置对象的方法,包括map,以及数组筛选元素filter等. 注:文章结尾处附深层次数组扁平化方法操作. 作为引用数据类型的一种,在处 ...

  8. 借助JavaScript中的Dom属性改变Html中Table边框的颜色

    借助JavaScript中的Dom属性改变Html中Table边框的颜色 -------------------- <html> <head> <title>我是页 ...

  9. Javascript常用对象的属性和方法

    javascript为我们提供了一些非常有用的常用内部对象和方法.用户不需要用脚本来实现这些功能.这正是基于对象编程的真正目的. 在javascript提供了string(字符串).math(数值计算 ...

随机推荐

  1. Gym 101911F “Tickets”

    传送门 题意: 给你一个由六位数字组成的门票编码x,并定义F(x) = | 前三位加和 - 后三位加和|: 求出给定的门票编码 x 之前并且 F(i) < F(x) 的 i 的总个数. 题解: ...

  2. poj 2955"Brackets"(区间DP)

    传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 给你一个只由 '(' , ')' , '[' , ']' 组成的字符串s[ ], ...

  3. macs安卓工程创建

    第一个 1.创建工程后先修改xml文件. 然后主程序中编写代码. center :如果图片比imageview大则显示中片中心部分 image大小  把view填满 匹配父控件 ,父控件多大它就多大. ...

  4. 精读Hadamard Response论文

    一.摘要 主要研究问题基于本地化差分隐私的k-分布,之前最佳的算法要求的是线性通信代价(k),而服务器计算时间的n*k,n表示所有的用户样本. 作者提出的HR不要求共享随机性,并且每个用户输入的数据都 ...

  5. ubuntu ------ 网络 ifconfig 不显示IP地址

    确保4个服务是启动着的

  6. Object的数据属性和访问器属性

    一.数据属性 1.数据属性:它包含的是一个数据值的位置,在这可以对数据值进行读写. 2.数据属性包含四个特性,分别是: configurable:表示能否通过delete删除属性从而重新定义属性,能否 ...

  7. saltstack pillar

    piller组件定义与客户端相关的任何数据(定义在master端),定义好的数据可以被其他组件调用(如state,api) 说通俗了,一句话,就是ansible vars里定义的变量,可以在整个pla ...

  8. es安装的时候遇到的所有的坑

    不允许root用户启动. 解决办法,创建子用户. 在linux下需要注意.es默认不能用root用户启动.我们需要新建一个用户来启动. groupadd  es adduser  es-user    ...

  9. linux环境下遇到的所有问题

    启动redis # 进去到src目录下,指定配置文件启动 ./redis-server ../redis.conf 设置外网访问 更改redis.conf 文件 bind 127.0.0.1 prot ...

  10. bzoj千题计划322:bzoj2561: 最小生成树(最小割)

    https://www.lydsy.com/JudgeOnline/problem.php?id=2561 考虑Kruscal算法求最小生成树的流程 如果 u和v之间的长为L的边能出现在最小生成树里, ...