var TextOverflow = { crop: function(elm) { var w = elm.width(), t = elm.text(), child; elm.html(''+t+''); child = elm.children(":first-child"); while (t.length > 0 && child.width() > w) { t = t.substr(0, t.length - 1); child.html(t + '…'); } } };