javascript - 如何删除html中标签中关联的所有属性和值
问题描述
嗨,我想删除与tag
in关联的所有属性值和样式html
输入:
<div id="content">
<span id="span" data-span="a" aria-describedby="span">span</span>
<p class="a b c" style="color:black;">paragraph</p>
</div>
我的预期输出:
<div id="content">
<span>span</span>
<p>paragraph</p>
</div>
我试过的:
$(function(){
var content = $('#content').html();
$(content).removeAttr("style");
$(content).html().replace(/<~="">/, "");
console.log(content);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">
<span id="span" data-span="a" aria- describedby="span">span</span>
<p class="a b c" style="color:black;">paragraph</p>
</div>
解决方案
您可以使用Element.getAttributeNames()
获取所有名称的数组并对其进行迭代以删除它们
$('#content *').each(function(_, el) {
el.getAttributeNames().forEach(el.removeAttribute.bind(el));
});
console.log($('#content')[0].outerHTML)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">
<span id="span" data-span="a" aria-describedby="span">span</span>
<p class="a b c" style="color:black;">paragraph</p>
</div>
注意某些浏览器需要 polyfill
推荐阅读
- c# - SQL 如何替换一个值
- python - 使用 python 和请求,如何进行正确的 POST 调用以及在哪里找到标头?
- android - FirebaseAppDistribution:appDistributionUpload gradle 命令中缺少应用程序 ID
- mysql - 跨列和行计算值的实例
- javascript - 使用 redux 钩子时使用 redux 操作的最佳选择是什么?
- sql - Impala 2.11:AnalysisException:选择列表中不支持子查询
- swift - 在 SwiftUI 中获取当前的经纬度
- c++ - 是否可以禁止一个类被动态转换为?
- git - Git - 将发布分支合并到主分支
- tensorflow - 任何想法如何解决激活函数的问题?