ExtJs基础知识总结:Dom、IFrame和TreePanel(三)

概述

  ExtJs是另外一种操作封装JavaScript的类库与Jquery同类。所以对Dom的操作也是支持的,比如修改Div内Html内容等操作。有几个问题需要思考下:

  1、ExtJs也支持IFrame的操作,可是如何才能访问IFrame外部Parent的Extjs对象那?

  2、在ExtJs中,我们能够通过TreePanel作为导航菜单,可是TreePanel的Root节点在合并和展开的两种状态展现出来的图标却是不一样,如何设置展开和合并时候图标一致性?

  其实ExtJs通过简单的设置就能够解决上面存在的问题。

ExtJs操作DOM

  ExtJs提供Ext.Element 、Ext.DomHelper、Ext.DomQuery三个类库来完成对DOM的操作。

  1、Ext.Element

  Ext.Element.get()快捷方式Ext.get(‘元素ID‘),只能以dom的id作为参数去获取Ext.Element对象。在Ext中所有组件都是有Id的,这个Id可以是手动指定,也可以是Ext的Id生成机制自动生成。

  2、Ext.DomHelper

  Ext.DomHelper主要是操作dom,对指定的id的dom对象修改Html内容。常用的方法实现追加、插入和重新元素HTML内容功能  

1、
    Ext.DomHelper.append(元素id,‘html内容’);
2、
    Ext.DomHelper.append(元素id,{tag:ul,children:[{tag:li,html:‘一个ul列表的第一项‘},{...}]});
3、
    Ext.DomHelper.insertHtml(位置参数,dom,‘html内容‘);
    //dom对象可以通过Ext.get(元素id)获取,位置参数:beforeBegin、afterBegin、beforeEnd、afterEnd;
4、
    Ext.DomHelper.overwrite(元素id,‘html内容‘);
    //重新元素内Html内容,相当于原生的 .innerHtml="";所以是重写容器中的内容。
5、
    var tpl = Ext.DomHelper.createTemplate("<li>{parameter}</li>");
    tpl.overwrite(domID,{parameter:‘参数值1‘})

  3、Ext.DomQuery

  Ext.DomQuery也是获取DOM对象,Ext.query() 是Ext.DomQuery.select()的快捷方式,常用的方法满足dom查询

1、
    Ext.query(‘div‘)//根据表情获取Dom
2、
    Ext.query(‘[id="domId"]‘)//通过ID获取Dom
3、
    Ext.query(‘div:first-child‘)//通过伪类获取DOM,支持绝大部分的CSS3选择器

  4、ExtJs操作Dom及CSS补充

  ExtJs操作Dom方式也有很多种,下面简单做个补充。select获取dom,ExtJs中Fly和get获取Dom对象是有区别的,get采用缓存而Fly却采用享元模式。

1、
    //查询Id=div1的元素,返回满足条件的集合Ext.CompositeElement类型
    Ext.select("#div1");
    //查询属性title=d1的div,返回满足条件的集合Ext.CompositeElement类型
    Ext.select("div[title=‘d1‘]");
2、
    get(el):Ext.dom.Element使用了缓存机制来提升获取DOM节点的效率
    fly(dom, [named]):Ext.dom.Element.Fly使用了JavaScript经典的享元模式来提升效率,从而节约内存,更加低碳化

  ExtJs操作css和属性

    var e = Ext.select("div[title=t1]");
    //属性操作
    //返回第一个匹配元素的title属性
    alert(e.first().getAttribute("title"));  

    //设置第一个匹配元素的title属性
    e.first().set({ "title": "newTitle" });  

    //CSS类操作
    //给第一个匹配元素添加c2样式
    e.addCls("c2");  

    //移除
    e.removeCls("c1");  

    //轮回
    e.toggleCls("c2");  

    //检查c2样式是否存在
    e.hasCls("c2");  

    //Html
    //获取Html
    e.first().dom.innerHTML;  

    //更新Html
    e.first().update("<b>更新后的Html</b>");  

    //值
    e = Ext.get("text1");
    e.getValue();
    e.set({ value: 150 }); 

IFrame操作分类的ExtJs对象

  A页面Html嵌套在另外B页面的IFrame里面时候,A页面的Js如何才能调用B页面ExtJs对象那?其实研究之后,你会发现只需要加上下面一句话就可。

var pdom=window.parent.Ext.getCmp(‘元素id‘);

TreePanel中设置父节点展开和收起图标

  TreePanel默认情况下拥有Child的Parent节点在展开和收起的情况下所展示的按钮图标样式是不一致的,如何才能设置图标样式一直那,其实针对ExtJs5.0以后的版本只需要设置如下CSS即可。

  1、先设置图标样式

    .iconbg1  {
        background-image:url(/Resource/Images/menu/group_gear.png);
        background-repeat:no-repeat;
    }
    .x-grid-tree-node-expanded .iconbg1
    {
      /* the icon */
      background-image:url(/Resource/Images/menu/group_gear.png);
      background-repeat:no-repeat;
    }
    .iconbg1_1  {
        background-image:url(/Resource/Images/menu/cog.png);
        background-repeat:no-repeat;
    }

  2、设置ExtJs中TreePanel的iconCls属性值

[
  {
    "Id": 3,
    "iconCls": "iconinsysmgr",
    "Mname": "系统工具",
    "url": "",
    "children": [
      {
        "Id": 3,
        "iconCls": "iconinsysmgr_1",
        "Mname": "清理缓存配置",
        "ParentmenuID": "3",
        "url": "/Tool/Index/",
        "leaf": "true"
      }
    ]
  }
]

参考文档

  1、ExtJsDom操作 http://blog.csdn.net/lovesomnus/article/details/38687711?utm_source=tuicool

  2、Extjs Dom操作的几个类 http://www.cnblogs.com/youring2/p/3962764.html

时间: 2024-10-20 07:13:32

ExtJs基础知识总结:Dom、IFrame和TreePanel(三)的相关文章

ExtJS基础知识总结

概述 最近一直在做相关ExtJs方面的项目,遇到了ExtJs使用方面的一系列问题,现在将使用技巧做个记录汇总,以便于下次能够快速使用.以下都是ExtJs控件的常用方法,做简单汇总,俗话说,好记星不如烂笔头,总一天会使用的. 基础控件使用技巧 1.Grid表格操作:获取Store的数据信息和操作列表行数据 //创建一个grid var rowPanel = Ext.create('Ext.grid.Panel', {}); //获取grid对应的Store的数据条数 rowPanel.getSto

【JavaScript基础知识】——DOM基础

基本概念 DOM即文档对象模型,针对HTML和XML文档的API(应用程序接口).它描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构,也就是表示和处理一个HTML或XML文档的常用方法. D即document,上网查了一下它的英文翻译,最初的意思是记录.所以把它说是文档也是有迹可循的.O即Object,也就是对象,可以理解为类似window对象之类的东西,可以调用属性和方法.M(模型)可以理解为网页文档的树

ExtJs基础知识总结:弹窗(四)

概述 Extjs弹窗可以分为消息弹窗.对话框,这些弹窗的方式ExtJs自带的Ext.Msg.alert就已经可以满足简单消息提示,但是相对复杂的提示,比如如何将Ext.grid.Panel的控件显示嵌套到widget.window,然后随着widget.window的show方法展示到页面上哪?下面有几种方案思路 思路一.直接将gridpandel填充到widget.window对应的Items 代码如下: var InvoiceItemGrid = Ext.create('Ext.grid.P

ExtJS基础知识总结(二)

概述 1.ExtJS 5不支持日期选择框中只选择年月,为了满足ExtJs5可以实现选择年月的功能,查询网上资料,整理出来了相应的处理方式,最终实现的效果如下图: 2.ExtJS 控件丰富,如果需要实现下拉列表控件ComboBox中含有Check样式的皮肤,只需要在ComboBox控件中监听相应的下拉事件和选择事件即可.实现的效果如下: 日历控显示年月的实现方式 1.编写ext-extendmonth.js,代码内容如下 Ext.define('Ext.form.field.Month', { e

JavaScript基础知识(DOM)

获取元素的方法 要操作谁,就要先获取谁: 获取元素 1.document.getElementById:通过ID名来获取元素 兼容性: 在IE8以下,会默认把name属性当做id来获取: document : 文档:上下问必须是document get : 获取 element : 元素 By : 通过 Id : ID名字: id 是唯一的:不能重复 var oBox = document.getElementById("box");// {className:""

接口测试基础知识详解http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][abs_path]http表示要通过HTTP协议来定位网络资源:host表示合法的Internet主机域名或者IP地址:port指定一个端口号,为空则使用缺省端口80:abs_path指定请求资源的URI:如果URL中没有给出abs_path,那么当它作为请求URI时,必须以"/"的形式给出,通常这个工作浏览器自动帮我们完成.e

vue基础知识之vue-resource/axios

Vue基础知识之vue-resource和axios(三) vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应.也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,而且vue-resource的API更为简洁.另外,vue-resource还提供了

ExtJS教程(2)--- Javascript类和对象基础知识

Javascript中的类其实就是一个function 如下面定义一个Person类 //定义一个类 function Person(){ this.name = 'jaune'; this.age = 18; } //创建一个对象 var person1 = new Person(); console.log(person1); /* * 控制台打出以下内容 * Person {name: "jaune", age: 18} */ 上面是一个简单的定义类及创建类的方法 //定义一个带

HTML DOM基础知识

HTML DOM基础知识 一.什么是DOM? 1.HTML DOM 定义了访问和操作HTML文档的标准方法. 2.HTML DOM 把 HTML 文档呈现为带有元素.属性和文本的树结构(节点树). 3.通过 JavaScript,您可以重构整个 HTML 文档.您可以添加.移除.改变或重排页面上的项目.要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所有元素进行访问的入口.这个入口,连同对 HTML 元素进行添加.移动.改变或移除的方法和属性,都是通过文档对象模型来获得