1

我创建了一个元素,如图所示:

  var imageElement =  new Element('img', {
                    'src': item.Url,
                    'alt': item.Id,
                    'height': height + 'px',
                    'width': width + 'px', 
                    'styles': {
                        'padding-left': paddingLeft + 'px',
                        'padding-top': paddingTop + 'px'
                    }
                });

当我设置一个断点以调出调试器并查看imageElement.get('html')返回的内容时,它是一个空字符串。

为什么会这样?这不就是你想获得innerHTML 的方式吗?

编辑:哦,那我如何获得它的 HTML 呢?

4

4 回答 4

4

我不确定当你可以通过它的对象访问它时,你为什么想要 IMG 的 HTML,但你在这里:

HTML:

<div id="image-wrap"></div>

Moo工具:

var imageElement =  new Element('img', {
   'src': item.Url,
   'alt': item.Id,
   'height': height,
   'width': width, 
   'styles': {
       'padding-left': paddingLeft + 'px',
       'padding-top': paddingTop + 'px'
   }
}).inject($('image-wrap'));

console.log(imageElement.getParent().get('html'));

您还可以即时创建包装元素,然后获取其内容。

于 2010-01-06T09:56:18.357 回答
1

图像元素是单例标签;他们没有内部HTML。

于 2010-01-06T02:24:54.707 回答
1

innerHTML顾名思义,就是元素内部的 HTML,即。它的内容。an 中没有内容,<img>因为根据定义它是一个空元素。

在 IE 中你也得到outerHTML. 没有好的跨浏览器,但对调试很有用。否则,您将仅限于例如。将图像附加到一个空的 div 并获取innerHTMLdiv 的。

                'height': height + 'px',
                'width': width + 'px', 

与 CSS 不同,HTML 的宽度/高度没有单位,这些属性是纯整数。

于 2010-01-06T02:38:55.547 回答
0

我知道这是一个已经回答的老问题,但我想我可以为任何从搜索结果中看到这个的人添加,在它实际附加到文档树之前没有元素具有 innerHTML 并且在 MooTools 的情况下“注入”。真正的答案显然是图像标签没有上面所说的innerHTML。

于 2011-01-30T00:35:45.733 回答