Есть объекты 
Selection (выделение) и 
Range (промежуток).
Можно получить выделение и вставлять в него промежутки.
Видны только промежутки, вставленные в выделение.
$(document).ready(function () {
  $('.selectable').click(function () {
    var w = window.getSelection();
   // w.removeAllRanges();  // вроде бы старые промежутки удаляются автоматически при каждом клике
    var range = document.createRange();
    range.selectNode(this);
    w.addRange(range);
  });
});
// selectable - класс тех div-элементов, которые будут выделяться целиком при клике на них
Я не знаю, насколько это кроссбраузерно, но там где-то были ссылки на DOM2