MooTools: Как получить innerHTML элемента? - PullRequest
1 голос
/ 06 января 2010

Я создал элемент, как показано:

  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 голосов
/ 06 января 2010

Я не уверен, зачем вам HTML-код IMG, когда вы можете получить к нему доступ через его объект, но вот вы:

HTML:

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

MooTools:

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'));

Вы также можете создавать элемент обертки на лету, а затем извлекать его содержимое.

1 голос
/ 06 января 2010

innerHTML - это, как следует из названия, HTML внутри элемента, т.е. его содержание. В <img> нет содержимого, так как это пустой элемент по определению.

В IE вы также получаете outerHTML. Нет хорошего кросс-браузера, но может быть полезно для отладки. В противном случае вы будете ограничены, например. добавление изображения в пустой div и получение innerHTML div.

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

В отличие от CSS, здесь нет единицы измерения ширины / высоты HTML, эти свойства являются целыми числами.

1 голос
/ 06 января 2010

Элементы изображения являются одноэлементными тегами; они не имеют внутреннего HTML.

0 голосов
/ 30 января 2011

Я знаю, что это старый вопрос, на который дан ответ, но я подумал, что могу добавить для всех, кто видит это из результатов поиска, что ни один элемент не имеет innerHTML, прежде чем он фактически добавлен в дерево документа и в случае MooTools 'inject' редактор И реальный ответ, очевидно, заключается в том, что тег изображения не имеет innerHTML, как указано выше.

...