jknife
Version:
javaScript工具库
32 lines (30 loc) • 795 B
JavaScript
/**
* @description 追加body属性,如果存在则替换值
* @param {String} attrKey key
* @param {String} value 值
* @interactive
*
* @example
* appendAttrToBody('color', 'red')
* console.log(document.body.getAttribute('style')) // color:red;
*/
function appendAttrToBody (attrKey, value) {
const baseStyleList = (document.body.getAttribute('style') ?? '').split(';')
let newStyle = ''
let isChange = false
for (const s of baseStyleList) {
if (!s) continue
const [key] = s.split(':')
if (key === attrKey) {
isChange = true
newStyle += `${key}:${value};`
} else {
newStyle += `${s};`
}
}
if (!isChange) {
newStyle += `${attrKey}:${value};`
}
document.body.setAttribute('style', newStyle)
}
export default appendAttrToBody