Если вы используете jQuery, то используйте его последовательно.Самая большая ошибка, указанная выше, заключается в том, что HTML не находится внутри строк, поэтому вы получите синтаксическую ошибку в JavaScript.
Вот несколько улучшенная версия:
$(function() {
var limit = 200;
var chars = $('#myDiv').text();
if (chars.length > limit) {
var visiblePart = $('<div />').text(chars.substr(0, limit-1));
var readMore = $('<a />', {
href: '#',
click: function() {
hiddenPart.show();
return false;
},
text: 'open'
});
var hiddenPart = $('<span />', {text: chars.substr(limit-1)}).hide();
var readLess = $('<a />', {
href: '#',
click: function() {
hiddenPart.hide();
return false;
},
text: 'close'
});
$('#myDiv').empty()
.append(visiblePart)
.append(readMore)
.append(hiddenPart)
.append(readLess);
}
});
Это все ещедалеко не идеально, но может дать вам начало: http://jsfiddle.net/fkling/cXw5D/