tinymce.full.js
function (elm) {
        var attrs;

        elm = this.get(elm);

        if (!elm) {
          return [];
        }

        if (isIE) {
          attrs = [];

          // Object will throw exception in IE
          if (elm.nodeName == 'OBJECT') {
            return elm.attributes;
          }

          // IE doesn't keep the selected attribute if you clone option elements
          if (elm.nodeName === 'OPTION' && this.getAttrib(elm, 'selected')) {
            attrs.push({ specified: 1, nodeName: 'selected' });
          }

          // It's crazy that this is faster in IE but it's because it returns all attributes all the time
          var attrRegExp = /<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;
          elm.cloneNode(false).outerHTML.replace(attrRegExp, '').replace(/[\w:\-]+/gi, function (a) {
            attrs.push({ specified: 1, nodeName: a });
          });

          return attrs;
        }

        return elm.attributes;
      }
function (elm) {
        var attrs;

        elm = this.get(elm);

        if (!elm) {
          return [];
        }

        if (isIE) {
          attrs = [];

          // Object will throw exception in IE
          if (elm.nodeName == 'OBJECT') {
            return elm.attributes;
          }

          // IE doesn't keep the selected attribute if you clone option elements
          if (elm.nodeName === 'OPTION' && this.getAttrib(elm, 'selected')) {
            attrs.push({ specified: 1, nodeName: 'selected' });
          }

          // It's crazy that this is faster in IE but it's because it returns all attributes all the time
          var attrRegExp = /<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;
          elm.cloneNode(false).outerHTML.replace(attrRegExp, '').replace(/[\w:\-]+/gi, function (a) {
            attrs.push({ specified: 1, nodeName: a });
          });

          return attrs;
        }

        return elm.attributes;
      }
function ( elm ) { var attrs ; elm = this . get ( elm ) ; if ( ! elm ) { return [ ] ; } if ( isIE ) { attrs = [ ] ; // Object will throw exception in IE if ( elm . nodeName == 'OBJECT' ) { return elm . attributes ; } // IE doesn't keep the selected attribute if you clone option elements if ( elm . nodeName === 'OPTION' && this . getAttrib ( elm , 'selected' ) ) { attrs . push ( { specified : 1 , nodeName : 'selected' } ) ; } // It's crazy that this is faster in IE but it's because it returns all attributes all the time var attrRegExp = / <\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|> / gi ; elm . cloneNode ( false ) . outerHTML . replace ( attrRegExp , '' ) . replace ( / [\w:\-]+ / gi , function ( a ) { attrs . push ( { specified : 1 , nodeName : a } ) ; } ) ; return attrs ; } return elm . attributes ; }
Returns a NodeList with attributes for the element.

@method getAttribs
@param {HTMLElement/string} elm Element node or string id to get attributes from.
@return {NodeList} NodeList with attributes.
Returns a NodeList with attributes for the element .