2016-10-31 244 views
2

有沒有人可以幫助我如何獲得標籤文本?,它運行如果我使用setText(),但是當我想要得到它時,我嘗試了getText()getLabel()它不運行。所以我需要幫助,如果你有一個想法。謝謝獲取標籤文本extjs

var lbl = { 
    xtype: 'label', 
    id: 'lblId', 
    text: 'Hello world!' 
}; 
new Ext.Panel({ 
    renderTo: Ext.getBody(), 
    width: 100, 
    height: 100, 
    items: [lbl, 
     { 
      xtype: 'button', 
      listeners: { 
       click: function() { 
        var label = Ext.get('lblId'); 
        console.log(label.getText()); 
       } 
      }, 
      text: 'click here' 
     }] 
}); 
+1

在這裏添加一些代碼,你試過嗎? –

+0

extjs的版本是什麼? – josei

+0

嘗試使用'label.getHtml()',如果你想把HTML代碼放在那裏,改用html配置。 – qmateub

回答

0

您需要獲取組件。

console.log(label.component.text); 
0

你可以試試:

App.label.getValue() 
0

您可以使用點擊監聽功能如下:

  var label = Ext.getCmp('lblId'); 
      label.setText('the new text'); 
      console.log(label.text); 

這將讓標籤作爲Ext JS的組件,然後你可以使用.setText()更改文本並使用.text檢索它。

看到小提琴:https://fiddle.sencha.com/#fiddle/1jkb

0

您可以嘗試以下三種方式。首先直接訪問text,其他表單正在訪問標籤的DOM對象。

var lbl = { 
 
    xtype: 'label', 
 
    id: 'lblId', 
 
    text: 'Hello world!' 
 
}; 
 

 
new Ext.Panel({ 
 
    renderTo: Ext.getBody(), 
 
    width: 100, 
 
    height: 100, 
 
    items: [lbl, 
 
     { 
 
      xtype: 'button', 
 
      listeners: { 
 
       click: function() { 
 
        var label = Ext.getCmp('lblId'); 
 
        console.log('Way 1: ' + label.text); 
 
        console.log('Way 2: ' + label.el.dom.innerHTML);  
 
        console.log('Way 3: ' + label.getEl().dom.innerHTML); 
 
       } 
 
      }, 
 
      text: 'click here' 
 
     }] 
 
});
<script src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all.js"></script> 
 
<link type="text/css" rel="stylesheet" href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css")/>