You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript:如何简洁设置/移除布尔属性?有无原生实现?

解决方案

目前JavaScript并没有原生提供你想要的setBoolAttribute方法,但你可以通过扩展Element原型来实现这个功能,这样所有DOM元素(包括Web组件影子根内的元素)都能直接调用,无需导入模块。

实现自定义方法

给Element.prototype添加该方法的代码如下:

Element.prototype.setBoolAttribute = function(attrName, predicate) {
  predicate ? this.setAttribute(attrName, '') : this.removeAttribute(attrName);
};

使用示例

之后就能按你期望的方式调用:

el.setBoolAttribute('data-foo', predicate);

注意事项

  • 扩展原生原型时要注意命名冲突,确保setBoolAttribute不会和未来的原生API或其他第三方库的方法重名。
  • 该方法会作用于所有Element实例,不管是普通DOM元素还是影子根内的元素,完全适配你的使用场景。

内容的提问来源于stack exchange,提问作者run_the_race

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:57:18