See unorphan.js instead.
$.unorphan()
adjoins the last two words of any block of text to make sure
that they will wrap together.
See Wikipedia for a description of text orphans.
$(function() {
$("p, li, h2, h3, h4, h5, h6").unorphan();
});
This changes:
<p>Apples, bananas and oranges.</p>
Into:
<p>Apples, bananas and oranges.</p>
Other similar utilities include:
As of time of writing, Unorphan works better than these because:
-
It does not mangle HTML at all (it operates on text nodes), you can be sure that your HTML tags will always be intact.
-
It does not rewrite
innerHTML
, causing your elements to unneededly reinitialize, and possibly losing events and data in the elements. -
It's extremely small. (400 bytes)
-
It does the manipulation on the client side, making no impact to your in-page SEO efforts.
Original idea and implementation by Shawn Inman.