I added more background and motivation on the ticket.

@paulirish Your `"innerHTML" in elem` check does indeed work as you suggest, and all tests pass with it. I also noticed a similar check a few lines earlier for the .html() getter case which could benefit from the same modification. As you point out, it seems better to test for the innerHTML property itself if that's what the intent of the `if` is than to use nodeType as a proxy.

@rwldrn is right that `in` costs more, at least at the level of the condition check. A quick experiment (http://jsperf.com/elem-nodetype-1-vs-innerhtml-in-elem) suggests that the `nodeType` form of the condition is 4x faster in Chrome than the `in` form. I'm not familiar enough with testing jQuery perf to know whether that difference is material. It could be the case that other operations in the html() code path dominate the cost. Perhaps someone with experience testing jQuery perf can indicate how to best determine the overall impact of this change.