[英]How do I change A Custom data attribute that have multiple key value?
我有一个 DOM
<body id='bodeh' class="loading" data-layout-mode="horizontal" data-layout='{"mode": "light", "width": "fluid", "menuPosition": "fixed", "topbar": {"color": "light"}, "showRightSidebarOnPageLoad": false}'>
我想用 Jquery 将数据布局“模式”更改为暗。
任何帮助都感激不尽。 谢谢
似乎您正在data-layout
中写入 JSON 所以一种解决方案是将 JSON 解析为 object 修改它然后对其进行字符串化并设置数据属性。 我们可以为此编写一个简单的 function:
const useElemForData = (elem, dataAttr) => {
return {
setData(value) {
elem.dataset[dataAttr] = JSON.stringify(value);
},
getData() {
return JSON.parse(elem.dataset[dataAttr]);
}
};
};
现在,如果你想将它与data-layout
和正文一起使用,你可以这样做:
const layoutData = useElemForData($("body"), "layout");
layoutData.setData({ ...layoutData.getData(), mode: "light" });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.