javascript - 从字符串中删除 html 属性?
问题描述
我有一个看起来像这样的 html 字符串:
<div id="demo_..." class="menu">
html 代码以字符串形式提供。现在我想删除所有以 demo_ 开头的 id 属性。结果应该是这样的:
<div class="menu">
我知道它应该与正则表达式一起使用。但我对特殊字符有点挣扎。正则表达式应该是什么样子,以便所有具有这种格式的字符串都可以替换为空字符串?
解决方案
您可以使用子字符串属性选择器
[att^=val]
表示具有 att 属性的元素,其值以前缀“val”开头。如果 "val" 是空字符串,则选择器不代表任何内容。
[att$=val]
表示具有 att 属性的元素,其值以后缀“val”结尾。如果 "val" 是空字符串,则选择器不代表任何内容。
[att*=val]
表示具有 att 属性的元素,其值包含至少一个子字符串“val”的实例。如果 "val" 是空字符串,则选择器不代表任何内容。
对于您的情况,您可以使用
document.querySelectorAll('[id^="demo_"]')
或者
document.querySelectorAll('[id*="demo_"]')
结果将是一个带有id
属性的 HTMLElement 数组,其值以前缀开头,如果使用而不是demo_
包含则包含。从那里您可以使用Method删除每个 HTMLElement att 。从这里阅读更多内容。demo_
*
^
id
removeAttribute()
document.querySelectorAll('[id^="demo_"]')
.forEach(element => element.removeAttribute('id'));
推荐阅读
- sql - BigQuery - 连接谓词中的表不受支持的子查询
- python - 如何在 C++ proejct 中嵌入二进制化的 python 包
- postgresql - 错误:(repmgr)服务器处于待机模式,无法注册为主服务器
- reactjs - Storybook:如何测试基于路线的动画?
- frontend - 试图分叉 pancakeswap 前端彩票页面。获取多路通话卡盘失败
- android - 颤振 apk 问题
- docker - 在 gitlab 管道中运行 oracle 映像
- javascript - 如何使用javascript链接html文件夹
- discord.js - 使用 discord.js v12 接收消息时尝试将消息发送到多个通道
- python-3.x - 在我的计算器中修复未解决的参考?