Вы довольно близки, проблема в том, что вы используете .text () для установки ссылки.
$(this).text($(this).text().prev() == 'Click to Collapse');
Эта строка кода пытается установить текст на $ (this)с возвращением $(this).text().prev() == 'Click to Collapse');
$(this).text()
возвращает строку «Click to Collapse».
.prev()
не является допустимой функцией для строк, поэтому приведет к ошибке JavaScript.
То, что вы хотите сделать, это $(this).text("Click to Expand");
Конечный результат будетбыть примерно таким:
$('.swap').click(function()
{
if($(this).text() == 'Click to Collapse')
{
$('ul.menu li ul').slideToggle('normal');
$('ul.menu li a').removeClass('active');
$(this).text('Click to Expand');
}else{
$('ul.menu li ul').slideToggle('normal');
$('ul.menu li a').addClass('active');
$(this).text('Click to Collapse');
}
}
);