为什么insertHTML('text')呈现为“未定义”?

时间:2010-11-16 11:28:11

标签: extjs

当我执行以下extJS代码时,它显示“undefined”而不是我想要插入div的文本。

alt text

结果

alt text

如何将HTML插入我的extJS元素?

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css">
  <style type="text/css">
    body {
        padding: 20px;
    }
    div#message {
        margin: 10px 0 0 0;
    }
  </style>
  <script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
  <script type="text/javascript" src="ext/ext-all-debug.js"></script>
  <title>Simple extJS</title>
  <script type="text/javascript">
      Ext.BLANK_IMAGE_URL = 'ext/resources/images/default/s.gif';
      Ext.onReady(function() {
        console.info('check to see if this shows up in firebug');

        Ext.get('buttonInfo').on('click', function() {
            var message = Ext.get('message');
            message.insertHtml('this is the information');
        });


      });
  </script>
</head>
<body>
    <button id="buttonInfo">Info</button>
    <div id="message"></div>
</body>
</html>

@flo,如果我使用innerHTML,则无法识别extJS对象:

alt text

更多无效的尝试

alt text

2 个答案:

答案 0 :(得分:2)

编辑: 对不起,错过了你问题的重要部分。 我不敢知道,我害怕。

我仍然想知道使用常规DOM是否会更简单,因为这似乎是你想要实现的目标:

var x=document.getElementById("message");
x.innerHTML = 'this is the information';

Edit2:经过一番搜索后,我想出了这个:

var message = Ext.get('message');
Ext.DomHelper.insertHtml('afterBegin', message, 'this is the information');

Edit3:这个答案很乱,但我们走了:

Ext.DomHelper.insertHtml('afterBegin', message.dom, 'this is the information');

message.update('text');

答案 1 :(得分:0)

我终于找到了答案:

message.insertHtml('beforeThis', 'insert this');

第一个参数可以是以下之一:

beforeBegin, afterBegin, beforeEnd, afterEnd

如果您只想更改文本,就像在jquery .html()中一样,请使用:

message.update('new content');