为什么使用替换来取消转义 html 标签也会去除所有其他 html 标签
Why does using replace to unescape html tags strips out all other html tags as well?
我需要将表中的<
和>
转换为<
和>
。我用来执行此操作的功能运行良好。
<div class="schedule">
<table>
<tbody>
<tr>
<td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<br />
<em>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</em><br />Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</td>
</tr>
</tbody>
</table>
</div>
和
$('.table-container td').each(function(){
var $this = $(this);
var t = $this.text();
$this.html(t.replace('<','<').replace('>', '>'));
});
但是,此函数还会删除不需要任何转义的<em>
标记。有人知道为什么吗?
https://jsfiddle.net/et1crLug/
因为你用.text()
来获取你的HTML内容。
请改用.html()
:
var t = $this.html();
https://jsfiddle.net/et1crLug/1/
使用 html(function) 替换each
循环的快捷方式方法
$('.table-container td').html(function(_,existing){
return existing.replace('<','<').replace('>', '>');
});
演示
当你使用 replace() 时,我发现它只替换了第一个实例。如果您使用正则表达式,则可以将其设置为将<
的每个实例替换为>
/g
https://jsfiddle.net/xdoj0qLy/
相关文章:
- 如何在tinymce编辑器中将点击事件绑定到html标签
- 从模板标签获取html
- 如何将具有相同功能的两个select html标签的两个JS组合在一起
- Html不是'我没认出Angularjs吐出来的标签
- 带有html标签的Summernote内容
- 为什么我的HTML标签消失了
- 不使用自定义CSS或HTML(使用框架方法)的角度材质文本输入或文本区域标签大小
- 如何忽略单词like“”中的未使用空格;测试-文本”;同时构建html标签
- 在AngularJS中过滤-html标签中的文本
- 如何在另一个 html 标签内选择 web 元素硒 Web 驱动程序与 html 源
- 选择标签 HTML 上的值将数组转换为字符串 Javascript
- 如何以编程方式切换标签HTML/js
- 如何使用NodeJs删除非标签Html元素
- 知道什么时候“音频”标签HTML已经发挥了作用
- 通过标签html中的照片列表更改
- 标签内的另一个标签html
- Sup标签内的标题标签html
- 当我选择另一个选择标签HTML<选择>
- 从节点检索标签HTML
- 如何从网页中删除所有标签(HTML JS PHP CSS JQUERY)