title: document.createElement not working
body: <p>I am creating a plugin using jQuery library.</p>
  
  <p>Here i am storing <strong>String.prototype</strong> in a variable then i am using this variable to extend my Sting object. And this is working fine.</p>
  
  <pre><code>// String Prototyping store in a variable
  // Save bytes in the minified version of js
  var StrProto = String.prototype;
  String.prototype.toProperCase = function () {
    return this.replace(/\w\S*/g, function (txt) {
      return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    });
  };
  // working fine
  alert("yogesh kumar".toProperCase());
  </code></pre>
  
  <p>In the next case i am creating m <strong>function xyz</strong> which stored in
  <strong>abc</strong> variable and this is also working fine.</p>
  
  <pre><code>function xyz(x){
    alert(x)
  }
  var abc = xyz;
  // working fine
  abc("yogesh kumar");
  </code></pre>
  
  <p>In the last case i am storing <strong>document.createElement</strong> in a variable
  <strong>tag</strong> and using tag to create a button. but this is not working.</p>
  
  <pre><code>var tag=document.createElement;
  $(document.createElement("button")).html("document.Element").appendTo("#myDiv");
  
  // not working
  $(tag("button")).html("tag").appendTo("#myDiv");
  </code></pre>
  
  <p>Please check the link on jsFiddle:</p>
  
  <blockquote>
    <p><a href="http://jsfiddle.net/yoku2010/hA2pJ/" rel="nofollow">click here</a></p>
  </blockquote>
  
  <p><strong>Error:</strong></p>
  
  <p><em>In Chrome</em></p>
  
  <ul>
  <li>Uncaught TypeError: Illegal invocation</li>
  </ul>
  
  <p><em>in Firefox</em></p>
  
  <ul>
  <li>Error: NS_ERROR_XPC_BAD_CONVERT_JS: Could not convert JavaScript
  argument</li>
  </ul>
  
  <p><strong>Why this error?</strong></p>
  
  <p><strong>What is the solution?</strong></p>