明天有救了动态改变正则表达式

在我遇到要动态更改TextField的fieldLabel方法时,因为ExtJs本身没有提供这个方法,在网上找了很多资料也没能正在解决这个问题, 于是我自己研究了很久,终于想到一个方法。那就是用Firebug来查看ExtJs的TextField在运行时被解析成什么样的HTML标签,然后用 Dom操作来修改它的标题。


var textField = new Ext.form.TextField({
fieldLabel: "输入框标题",
id: "textfieldId"
});


上面的一个TextField在运行时被解析成的HTML为:


<div tabindex="-1" class="x-form-item " id="ext-gen117">

<label class="x-form-item-label" for="textfieldId" id="ext-gen118">输入框标题:</label>

<div style="padding-left: 105px;" id="x-form-el-netprice1" class="x-form-element">

<input type="text" name="textfieldId" id="textfieldId" autocomplete="off" class=" x-form-text x-form-field x-form-num-field"  title="">

</div>

<div class="x-form-clear-left"></div>

</div>


从上面的HTML可以看出,输入框(text)和它的标题(label)的 Dom关系是:label是text的叔叔 ,所以,我们可以使用如下代码来更改它的标题:

document.getElementById("textfieldId").parentNode.previousSibling.innerHTML ="输入框标题改变了:";

注: 在更改它的标题之前,要保证该TextField已经被渲染到窗体。

你可能感兴趣的:(明天有救了动态改变正则表达式)