javascript - 动态地从 javascript 变量中剥离 HTML 标签

标签 javascript html

我有以下 html:

<div id="iView" name="iView" contenteditable="true" style="width: 545px; height:185px; border: 2px solid green;"><p>jgfj</p>hello this</div>
    <input type="button" value="click" onClick="getEditorText();" />

我的脚本放在这里:

function getEditorText(){
    var viewContent = document.getElementById('iView').innerHTML;
    alert(viewContent);
    //alert(viewContent.replace(/<([^>]+)>/ig,"")); nothing works
    //alert(viewContent.replace(/(<\S([^>]+)>)/ig,"")); nothing works
    //alert(viewContent.replace(/<[^>]+>/ig,"")); nothing works
    //alert(viewContent.replace(/<\/?[^>]+(>|$)/g, "")); nothing works
    //alert(viewContent.replace(/<(?:.|\n)*?>/gm, '')); nothing works
}

在我的第一个警报中它省略了标签..

但是当我动态包含标签时..它并没有省略标签..所以让我知道如何使用 javascript 而不是 jquery 动态去除 html 标签?

最佳答案

应该正常工作的代码的修改版本:

function getEditorText() {

    var el = document.getElementById('iView'),
        viewContent = el.innerText || el.textContent;

    viewContent = viewContent.replace(/<([^>]+)>/ig,"")
        .replace(/(<\S([^>]+)>)/ig,"")
        .replace(/<[^>]+>/ig,"")
        .replace(/<\/?[^>]+(>|$)/g, "")
        .replace(/<(?:.|\n)*?>/gm, '');

    el.innerHTML = viewContent;
}

演示:http://jsfiddle.net/LRCXM/2/

请注意,Firefox 需要 textContent 而不是 innerText

关于javascript - 动态地从 javascript 变量中剥离 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21328401/

相关文章:

javascript - 将所选文本加粗

javascript - 当一个div的内容增加时扩展所有div的高度

javascript - 如何使用 greasemonkey/tampermonkey 从一个页面复制 <div> 元素并将其粘贴到另一个页面?

html - css:使div变圆并在其3/4处添加边框

javascript - 无需浏览器 GUI 的文本转语音

javascript - 无法在单独的js文件中调用jquery自定义函数

javascript - Chrome 不再允许输入类型 ="number"上的 selectionStart/selectionEnd

javascript - React.js - 可拖动元素上的setDragImage

javascript - 在 AngularJS 中,如何加载隐藏元素的页面?

jquery - 如何显示在html5中拖动内容时显示的标签?