чет ты там намутил с айдишниками и category-list-0 )) не айс))
вот намалевал примитивчик
<span class="openall">Open all
</span>
<ul id="categories">
<li>Category 1
<ul>
<li>Category 1.1
</li>
<li>Category 1.2
</li>
<li>Category 1.3
<ul>
<li>Category 1.1.1
</li>
<li>Category 1.1.2
</li>
</ul>
</li>
</ul>
</li>
<li>Category 2
</li>
<li>Category 3
<ul>
<li>Category 3.1
</li>
<li>Category 3.2
</li>
</ul>
</li>
<li>Category 4
</li>
</ul>
$('#categories li:has(ul)').addClass('plus');
$('#categories li').toggle(function() {
var t = $(this);
$('>ul', t).css({display: 'block'});
t.removeClass('plus').addClass('minus');
}, function() {
var t = $(this);
$('>ul', t).css({display: 'none'});
t.removeClass('minus').addClass('plus');
});
$('.openall').toggle(function() {
var t = $(this),
ul = $('#categories');
t.text('Close all');
$('li:has(ul)', ul).removeClass('plus').addClass('minus');
$('li>ul', ul).css({display: 'block'});
}, function() {
var t = $(this),
ul = $('#categories');
t.text('Open all');
$('li:has(ul)', ul).removeClass('minus').addClass('plus');
$('li>ul', ul).css({display: 'none'});
});
тут пример -
http://keyx.narod.ru/001.htm
а по сабжу - $(".plus").removeAttr('class').addClass("minus"), но с toggleClass будет проблема, так как он выполняет первое действие, потом второй и ему пох, что там уже выполнено первое... нужно мутить с проверкой if ( hasClass('minus') ) addClass('plus'), или что-нить в этом роде))