Есть объекты
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