code: function getAttribute(node, key) {
      var map = attrMap[key];
      if (map) return typeof map === "function" ? map(node) : node[map];
      if (checkAttributes) {
        return node.getAttribute(key);
      }
      var attrNode = node.getAttributeNode(key);
      // 对于selected checked 当返回为bool值时  将其标准化为 selected = "selected"
      // 方便后续处理
      // 很多时候null可以作为标志位，nes中大部分特殊flag都用null标示
      return typeof node[key] === "boolean" 
              ? node[key] ? key : null
              : (attrNode && attrNode.specified ?attrNode.value : null);
    }
docs: 获得节点node的key属性的值, 修改自from sizzle...蛋疼啊各浏览器的属性获取