Подтвердить что ты не робот

Преобразование строки javascript в объект html

Можно ли преобразовать строку в объект html? как:

string s = '<div id="myDiv"></div>';
var htmlObject = s.toHtmlObject;

чтобы я мог позже получить его по id и сделать некоторые изменения в своем стиле

var ho = document.getElementById("myDiv").style.marginTop = something;

Thanx миллион заранее, Лина

4b9b3361

Ответ 1

Вы не можете сделать это с помощью только метода, если только вы не используете какую-либо фреймворк javascript, такой как jquery, который поддерживает его.

string s = '<div id="myDiv"></div>'
var htmlObject = $(s); // jquery call

но все же он не будет найден с помощью getElementById, потому что для этого элемент должен находиться в DOM... просто создание в памяти не вставляет его в dom.

Вам нужно будет использовать append или appendTo или after и т.д., чтобы сначала поместить его в dom.

Of'course все это можно сделать с помощью обычного javascript, но для выполнения одной и той же задачи потребуется больше шагов... и логика в обоих случаях одинакова.

Ответ 2

var s = '<div id="myDiv"></div>';
var htmlObject = document.createElement('div');
htmlObject.innerHTML = s;
htmlObject.getElementById("myDiv").style.marginTop = something;

Ответ 3

Была та же проблема. Я использовал грязный трюк так:

var s = '<div id="myDiv"></div>';
var temp = document.createElement('div');
temp.innerHTML = s;
var htmlObject = temp.firstChild;

Теперь вы можете добавлять стили так, как вам нравится:

htmlObject.style.marginTop = something;

Ответ 4

В дополнение к методу Gaby, мы можем найти элементы внутри htmlObject таким образом -

htmlObj.find("#box").html();

Fiddle доступен здесь - http://jsfiddle.net/ashwyn/76gL3/

Ответ 5

Если браузер, который вы планируете использовать, - это Mozilla (разработка аддона) (не уверен в chrome), вы можете использовать следующий метод в Javascript

function DOM( string )
{
    var {Cc, Ci} = require("chrome");
    var parser = Cc["@mozilla.org/xmlextras/domparser;1"].createInstance(Ci.nsIDOMParser);
    console.log("PARSING OF DOM COMPLETED ...");
    return (parser.parseFromString(string, "text/html"));
};

Надеюсь, что это поможет