Напрямую поместите глобальный объект в элемент HTML

Вот мой код:

document._createELement = document.createElement;
document.createElement = function(type, data){
    var x = document._createElement(type);
    x = data;

    return x;
}

И я попробовал это:

document.body.appendChild(document.createElement("p", {
    innerHTML: "Hi!"
}));

И я ожидаю увидеть это в HTML:

<p>Hi!</p>

Какое решение для завершения функции document.createElement выше?


person user3698272    schedule 26.06.2014    source источник
comment
Почему вы ожидаете, что {innerHTML:"Hi!"} каким-то таинственным образом изменится на <p>Hi!</p>???   -  person Teemu    schedule 26.06.2014
comment
Итак, теперь у меня есть привет! в data, и я хочу поместить data в x, чтобы x.innerHTML = data.innerHTML, но я должен иметь возможность добавлять все виды атрибутов в data, такие как style, className, id и т. д.   -  person user3698272    schedule 26.06.2014
comment
Да, да, я сделал. Вот почему я спрашиваю. Сначала вы назначаете HTMLElement для x, затем в следующей строке вы назначаете анонимный объект для того же самого x.   -  person Teemu    schedule 26.06.2014
comment
Просто перечислите свойства data и назначьте их x.   -  person Rob W    schedule 26.06.2014


Ответы (1)


Если вы просто хотите создать элемент p и добавить его к телу, это сделает это

var p = document.createElement("p");
p.innerHTML = "Hello!";
document.body.appendChild(p);

ИЗМЕНИТЬ

Не понял, что ты имеешь в виду

function createEl(type, data) {
    var el = document.createElement(type);
    for ( var x in data ) {
      el[x] = data[x];
    };
    return el;
}

var p = createEl("p", { innerHTML : "Hi There!" });
document.body.appendChild(p);

JSFiddle

person Mark Walters    schedule 26.06.2014
comment
Нет, это не то, что я имею в виду. Проблема в функции document.createElement, которую я создал. - person user3698272; 26.06.2014