将javascript字符串转换为html对象

时间:2010-03-26 10:18:34

标签: javascript html

我可以将字符串转换为html对象吗? 像:

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

这样我以后可以通过id获取它并在其样式上做一些改变

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

提前100万, 丽娜

5 个答案:

答案 0 :(得分:72)

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

答案 1 :(得分:37)

你不能只使用方法,除非你使用像jquery这样支持它的javascript框架..

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

但是,getElementById找不到它,因为为了工作,元素必须在DOM中...只是在内存中创建不会将它插入到dom中。

您需要先使用appendappendToafter等将其放入dom中。

当然,所有这些都可以通过常规的javascript来完成,但是需要更多的步骤才能完成同样的事情......并且两种情况下的逻辑都相同......

答案 2 :(得分:30)

有同样的问题。我使用了这样一个肮脏的伎俩:

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

现在,您可以按自己喜欢的方式添加样式:

htmlObject.style.marginTop = something;

答案 3 :(得分:4)

除了Gaby aka的方法,我们可以用这种方式在htmlObject内找到元素 -

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

这里有小提琴 - http://jsfiddle.net/ashwyn/76gL3/

答案 4 :(得分:1)

如果您计划使用的浏览器是Mozilla(Addon开发)(不确定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"));
};

希望这有帮助