Is it bad to add JSON on HTML data attribute?

前端 未结 5 1722
花落未央
花落未央 2021-01-31 16:05

Since HTML data attribute allows adding any custom data, I wonder if it is a good idea to include a set of JSON list as a data attribute?

5条回答
  •  轮回少年
    2021-01-31 16:56

    You could make use of Map. Where your element will be the key, and the value at that key could be an object in which you store wanted data. Something like this (not tested though):

    (function(global) {
    
      const map = new Map();
    
      global.CustomData = {
        add(element, key, data) {
          if (!map.has(element)) {
            map.set(element, {});
          }
    
          map.get(element)[key] = data;
    
          return map.get(element);
        },
    
        get(element, key) {
          if (!map.has(element)) {
            return null;
          }
    
          if (key !== undefined) {
            return map.get(element)[key];
          }
    
          return map.get(element)
        },
    
        remove(element, key) {
          if (!map.has(element)) {
            return false;
          }
    
          delete map.get(element)[key];
    
          if (Object.keys(map.get(element)).length === 0) {
            map.delete(element);
          }
    
          return true;
        },
    
        clear(element) {
    
          if (!map.has(element)) {
            return false;
          }
    
          map.delete(element);
    
          return true;
        }
      }
    
    })(window);

提交回复
热议问题