Ext JS 和DOM

DOM的使用

Ext JS本质上是个DHTML(Dynamic HTML)库,使用JS来创建或者操作DOM元素。事实上,即使是相同的JS DOM操作方法,在不一样的浏览器里也有不一样的表现,这就涉及到了跨浏览器的问题了。为了解决这个问题,Ext JS提供了以下的类:

描述
Ext.dom.ElementExt JS里包装了最基本HTML DOM的类,提供了一站式规范的DOM操作方法。
Ext.dom.CompositeElement封装了一组HTML DOM元素,包括了操作、过滤或者特定的方法。
Ext.dom.Helper允许使用特定的标签标签来创建DOM元素,比如:tag、children、cls和html等。
Ext.dom.Query允许使用CSS3选择器、 自身的选择器和XPath语法来查询DOM元素。

Ext.dom.Element

Ext JS里面的Ext.dom.Element包装了真实的HTML DOM元素,该类负责修改DOM元素并处理各种跨浏览器问题。Ext.get() 和 Ext.fly() 这两个方法返回Ext.dom.Element类的对象。

方法描述
Ext.get()指定id返回Ext.dom.Element对象。
Ext.fly()和get()方法表现相同。不会在内存里缓存元素的引用,所以更加快捷迅速。

下面的例子展示了如何获得DOM元素的引用:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="../../ext-4.2.1/ext-4.2.1.883/ext-debug.js"></script>
        <script>
            Ext.onReady(function () {
                // get Ext.dom.Element object
                var txtFirst = Ext.get("txtFirstName");
                txtFirst.set({ 'value': 'Steve' });

                Ext.fly('txtLastName').set({ 'value': 'Jobs' });

                console.log(txtFirst.$className);
            });
    </script>
</head>
<body>
  First Name: <input type="text" id="txtFirstName" class="myclass"/> <br /><br />
  Last Name:  <input type="text" id="txtLastName" class="myclass" /> 
</body>
</html>

在上面的例子中,Ext.get()方法返回了id为txtFirstName的Ext.dom.Element对象,然后就可以使用Ext.dom.Element类中的各种方法来操作DOM元素。
注意:当您不需要对DOM元素执行多个操作时,最好使用Ext.fly()函数,因为它更加有效且占用了较少的存储器(所以前一个fly()会被覆盖掉)。例如:

//对比下面的两种情况:

//A:
     var elementA = Ext.fly('elementA');  
     var elementB = Ext.fly('elementB'); 
     //无效!!
     elementA.dom.innerHTML = 'A';
     //有效。   
     elementB.dom.innerHTML = 'B';  

//B:
     var elementA = Ext.get('elementA');  
     var elementB = Ext.get('elementB'); 
     //有效。
     elementA.dom.innerHTML = 'A';
     //有效。   
     elementB.dom.innerHTML = 'B'; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值