我正在为静态博客构建提交表单。表格位于:
https://archwomen.org/blog/submit
我有降价预览,但我也希望有一个HTML预览。
这是一个想法:
当有人点击“html”按钮时,我需要这个html标记:
<div id="preview"></div>
要改变这个:
<textarea readonly id="preview"></textarea>
当有人点击“直播”按钮时,我希望将html标记更改回来。我希望用纯javascript做到这一点,但到目前为止我没有太多运气。我在这里设置了一个jsfiddle:
function transformTag(tagId){
var elem = document.getElementById(tagId);
var children = elem.childNodes;
var parent = elem.parentNode;
var newNode = document.createElement("textarea readonly id="preview"");
for(var i=0;i<children.length;i++){
newNode.appendChild(children[i]);
}
parent.replaceChild(newNode,elem);
}
非常感谢任何帮助。
答案 0 :(得分:0)
尝试
window.transformTag = function(type, tagId){
var elem = document.getElementById(tagId), newNode;
var children = elem.childNodes;
var parent = elem.parentNode;
if(type == 'input'){
newNode = document.createElement("textarea");
newNode.readOnly = true;
newNode.value = elem.innerHTML;
} else {
newNode = document.createElement("div");
newNode.readOnly = true;
newNode.innerHTML = elem.value;
}
newNode.id = tagId;
parent.replaceChild(newNode, elem);
}
演示:Fiddle
答案 1 :(得分:0)
jQuery: how to change tag name?
http://www.webmaster-talk.com/javascript-forum/71713-changing-a-tag-one-element-another.html
更好地创建两个元素并切换其可见性。
答案 2 :(得分:0)
我稍微更改了代码:http://jsfiddle.net/Lc2Yg/2/
function transformTag() {
var elem = document.getElementById('preview');
var edited_area = document.getElementById('text-input');
var parent = elem.parentNode;
var newNode = document.createElement("textarea");
newNode.rows = 25
newNode.cols = 25
newNode.readOnly = true
newNode.value = edited_area.value
parent.replaceChild(newNode,elem);
}