代码之家  ›  专栏  ›  技术社区  ›  Edward Tanguay

为什么inserthtml(“文本”)呈现为“未定义”?

  •  1
  • Edward Tanguay  · 技术社区  · 15 年前

    当我执行以下extjs代码时,它会显示我“未定义”,而不是要插入到该分区的文本。

    结果

    如何将HTML插入到extjs元素中?

    <!文档类型HTML>
    & HTML& GT;
    &头;
    <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”>
    身体{
    填料:20px;
    }
    DIVα消息{
    边距:10px 0 0 0;
    }
    &风格/风格;
    <script type=“text/javascript”src=“ext/adapter/ext/ext base.js”></script>
    <script type=“text/javascript”src=“ext/ext all debug.js”></script>
    <title>简单extjs</title>
    <script type=“text/javascript”>
    ext.blank_image_url='ext/resources/image s/default/s.gif';
    ext.onready(函数()){
    console.info('检查这是否在firebug中显示');
    
    ext.get('buttonInfo')。on('click',function()。{
    var message=ext.get('message');
    message.inserthtml(“这是信息”);
    (});
    
    
    (});
    & /脚本& GT;
    和/头& GT;
    和身体;
    <button id=“buttonInfo”>信息</button>
    <DIV id=“message”></DIV>
    和/身体;
    & lt//html & gt;
    < /代码> 
    
    

    @flo,如果我使用innerhtmlit is not recognized on the extjs object:。

    更多的尝试都失败了

    而不是我要插入到该分区中的文本。

    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>
    

    如果我使用FLOinnerHTML在extjs对象上无法识别:

    alt text

    更多的尝试都失败了

    2 回复  |  直到 15 年前
        1
  •  2
  •   Flo    15 年前

    编辑: 抱歉,错过了你的重要问题。 恐怕不认识extjs。

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

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

    伊迪丝2:经过一番搜索,我想到了:

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

    伊迪丝3:这个答案一团糟,但我们来看看:

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

    message.update('text');
    
        2
  •  0
  •   Edward Tanguay    15 年前

    我终于找到了答案:

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

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

    beforeBegin, afterBegin, beforeEnd, afterEnd
    

    如果您只想更改文本,如jquery.html(),请使用:

    message.update('new content');