将javascript字符串转换为html对象

bom*_*mbo 66 html javascript

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

string s = '<div id="myDiv"></div>';
var htmlObject = s.toHtmlObject;
Run Code Online (Sandbox Code Playgroud)

所以我以后可以通过id获取它并做一些改变它的风格

var ho = document.getElementById("myDiv").style.marginTop = something;
Run Code Online (Sandbox Code Playgroud)

丽娜,提前100万

paw*_*wel 82

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

  • 是的,或者只是`htmlObject.firstChild`,因为你知道它永远都是. (4认同)
  • 这不完全正确,因为您无法在创建的htmlObject实例上调用getElementById. (4认同)
  • 您可以将 htmlObject 附加到文档片段以使用 getElementById,例如 `var fragment = document.createDocumentFragment(); fragment.appendChild( htmlObject ); fragment.getElementById("myDiv").style.marginTop = something;` (2认同)

Gab*_*oli 47

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

string s = '<div id="myDiv"></div>'
var htmlObject = $(s); // jquery call
Run Code Online (Sandbox Code Playgroud)

但仍然,它不会被发现getElementById因为为了工作元素必须在DOM ...只是在内存中创建不会将其插入到dom中.

您可能需要使用appendappendToafter等..把它在DOM第一..

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

  • jQuery很酷但它只是JavaScript (42认同)
  • 请删除“你只能使用 jquery 来完成”的部分。这是完全错误的。 (3认同)

cro*_*ing 34

有同样的问题.我使用了这样一个肮脏的技巧:

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

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

htmlObject.style.marginTop = something;
Run Code Online (Sandbox Code Playgroud)

  • @user7331530 那是因为“更多文本”是第二个孩子。如果你想要一切,请使用“temp”。如果您想要“更多文本”,请使用“temp.childNodes[1]”。 (2认同)

Ash*_*win 5

除了Gaby aka的方法外,我们还可以htmlObject通过这种方式在其中找到元素-

htmlObj.find("#box").html();
Run Code Online (Sandbox Code Playgroud)

小提琴在这里可用-http: //jsfiddle.net/ashwyn/76gL3/