【发布时间】:2012-03-09 05:31:37
【问题描述】:
有没有办法在 JavaScript 中将标记字符串转换为节点对象?其实我正在寻找替代品:
document.getElementById("divOne").innerHTML += "<table><tbody><tr><td><input type='text' value='0' /></td></tr></tbody></table>"
类似
document.getElementById("divOne").appendChild(document.createNodeFromString("<table><tbody><tr><td><input type='text' value='0' /></td></tr></tbody></table>"))
使用 createNodeFromString 而不是创建 table 元素,然后附加其子元素,然后附加它们各自的属性和值!
【问题讨论】:
-
我很好奇为什么设置 innerHTML 对你不起作用。设置 innerHTML 后,您可以通过查询 divOne 来获取结果元素。
-
@akonsu,据说你在 divOne 中有 并且在这个 div 之外你有一个带有 onclick= innerHTML-method 的按钮。现在,在 FF10 和 IE9(带有文档模式 IE9)中,在文本框中输入内容并按下按钮,输入的值将被重置!我想看看appendChild会发生同样的事情。顺便说一句,在 IE8 兼容模式下,输入元素的值是持久的..
-
你是说如果你有一个文本输入字段和一个按钮,当你按下按钮时输入字段的值会被清除?你能在 jsbin.com 上演示一下吗?
-
你考虑过使用jQuery这样的框架吗?让这种任务变得更容易......
-
在具有本机兼容性的 FF10 或 IE9 中尝试,然后在 IE8 兼容模式下尝试:jsbin.com/amodag 另外,
document.getElementById("divOne").appendChild(document.createElement("input"))确实保留了 IE9 中的输入值,但我需要将整个表附加到单个语句。
标签: javascript html dom