Преобразование строки javascript в объект html
Можно ли преобразовать строку в объект html?
как:
string s = '<div id="myDiv"></div>';
var htmlObject = s.toHtmlObject;
чтобы я мог позже получить его по id и сделать некоторые изменения в своем стиле
var ho = document.getElementById("myDiv").style.marginTop = something;
Thanx миллион заранее,
Лина
Ответы
Ответ 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"));
};
Надеюсь, что это поможет