jquery - 不工作 $(this).removeAttr('123').attr('456','');
问题描述
有没有人可以解决这个问题?关于:attr(123,'');
例如 attr:123="" 到 456=""
作品:
/* Works */
$('product[123s0s0]').removeAttr('123s0s0').attr('abc123','');
$('product[abc123]').css({'background-color':'#cfc'});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p><product 123s0s0 style="background-color: #ccc">123s0s0 to abc123: Works</product></p>
<p><product 456s0s0 style="background-color: #ccc">456s0s0 to 456s0s1: Not</product></p>
不是:
$('product[456s0s0]').removeAttr('456s0s0').attr('456s0s1','');
$('product[456s0s1]').css({'background-color':'#cfc'});
解决方案
这是因为这些属性和<product />
标签本身是非标准的。他们中的任何一个都有效的事实非常幸运。
我建议使用标准 HTML 标记,除非您真的想编写自己的 doctype,以及data
存储自定义元数据的属性。尝试这个:
$('span[data-123s0s0]').removeAttr('data-123s0s0').attr('data-abc123','');
$('span[data-abc123]').addClass('foo');
$('span[data-456s0s0]').removeAttr('data-456s0s0').attr('data-456s0s1','');
$('span[data-456s0s1]').addClass('foo');
span { background-color: #CCC; }
.foo { background-color: #CFC; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p><span data-123s0s0>123s0s0 to abc123: Works</span></p>
<p><span data-456s0s0>456s0s0 to 456s0s1: Works</span></p>
推荐阅读
- sql - 如何从一个源中提取一组记录并从另一个源中提取剩余记录
- ringcentral - 有没有办法更新和删除 Glip 团队或组?
- activeadmin - 如何通过直接从 Active Admin 中的 edit_page 设计身份验证令牌重置用户密码?
- c# - Linq-to-SQL 父链接删除缓慢
- perl - Perl 中的核心、供应商和站点位置有什么区别?
- html - 如何防止图像的边距可点击?
- kubernetes - kubernetes 客户端中是否有替换“kubectl port-forward”命令的方法
- struct - 自动填充 SystemVerilog 打包结构,以便它们可以放入联合中
- c# - 使用 HttpClient 将 Content-Type 设置为“application/json”并将对象添加到正文
- python - 致命的 Python 错误:initfsencoding:无法加载文件系统编解码器 ModuleNotFoundError:没有名为“encodings”的模块