Javascript - 点击按钮更改html标记

时间:2013-07-27 15:41:12

标签: javascript html5 button markdown web-deployment

我正在为静态博客构建提交表单。表格位于:

https://archwomen.org/blog/submit

我有降价预览,但我也希望有一个HTML预览。

这是一个想法:

当有人点击“html”按钮时,我需要这个html标记:

<div id="preview"></div>

要改变这个:

<textarea readonly id="preview"></textarea>

当有人点击“直播”按钮时,我希望将html标记更改回来。我希望用纯javascript做到这一点,但到目前为止我没有太多运气。我在这里设置了一个jsfiddle:

http://jsfiddle.net/Lc2Yg/

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);
}

非常感谢任何帮助。

3 个答案:

答案 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)

答案 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);
}