2012-03-01 3 views

ответ

0

хорошо использовать innerHTML вместо того, чтобы пытаться взломать Dóm манипуляции для такого рода вещи.

Чтобы сделать это, создать действительный узел с йотом, если вы хотите (или получить его через getElementById), затем установите innerHTML этого узел с кодом

2

Нет, родную DOM API для .createElement не поддерживает, что синтаксис. Вам нужно создать простой элемент и установить любое свойство или непосредственно на объекте

newElem.attr = "lol"; 

или (лучше), используйте .setAttribute()

newElem.setAttribute('attr', 'lol'); 

Что вы «могли бы» сделать, это сделать создать documentFragment, затем используйте .innerHTML, чтобы записать эту строку в этот фрагмент и, наконец, .append его содержимое в целевое назначение.

+0

Похоже 'SetAttribute()' [медленнее] (http://jsperf.com/setattribute-vs-attr) '.attr' :-) –

+0

@FlorianMargaine: очень возможно. Но оговорка в том, что этот афаик нигде не описывается в каких-либо спекуляциях до этого момента. Так что его довольно туманный стиль кодирования. Во всяком случае, похоже, что почти все браузеры поддерживают этот синтаксис так или иначе «как-то». Итак, это зависит от вас. – jAndy

0

Свойство innerHTML работает здесь - но немного сложнее разместить то, что вам нужно. Например:

var div = document.createElement('div'); 
div.innerHTML = "<img src='http://www.google.com/logos/classicplus.png'/>"; 

По моему скромному мнению, это чертовски много проще использовать JQuery, чтобы справиться с этим для вас, как это происходит со всеми методами Jquery уже прикрепленными.

var div = $("<div class='blah'><img src='http://www.google.com/logos/classicplus.png'/></div>"); 
div.find('img').hide(); 
div.appendTo('body'); 
div.find('img').fadeIn(); 
Смежные вопросы