I extended the jQuery object to return it's inner HTML...
$.fn.toString = function() {
return this.html();
};
console.log(The inner HTML is: + $(<div>Here, <i>there</i>, everywhere</div>));
Is there any reason why this is not the default behaviour? Does this break something?
Updated to respond to answers/comments
Firstly, I don't see how it would break much, except for type checks which rely on coercing jQuery objects into string, and matching text in that string. Am I wrong about this?
This returns the outerHTML
of all elements in a set, concatenated. Does this make any sense to anyone else? To me it makes quite a bit of sense.
var li, list;
$.fn.toString = function() {
var out;
out = [];
$.each(this, function(k, v) {
return out.push($(v)[0].outerHTML);
});
return out.join(n);
};
list = $(<ul>n <li>some <a href='/'>link</a> items</li>n <li>some <a href='/'>link</a> items</li>n <li>some <a href='/'>link</a> items</li>n <li>some <a href='/'>link</a> items</li>n <li>some <a href='/'>link</a> items</li>n</ul>);
li = $(li, list);
console.log(The html of it..: + li);