Wrap Stray TEXT In DIV

by bizamajig

HTML

<div class="post">
    <div class="whatever">This should remain untouched</div>
    I want to wrap this in div.red        <br /><span></span>
    jkf lsadjf klsda fsadf sadf sadf sadf 
</div>

CSS

.red{background:red}

JavaScript

$('.post').each(function() {
    var data = [];
    $(this).contents().each(function() {
        if ( this.nodeType === Node.TEXT_NODE ) {
            data.push(this);
        }
    }).end().append( $('<div class="red" />').append(data) );
});