Определенно лучше выводить такие вещи в PHP, пока генерируется список. Таким образом, он гарантированно присутствует и доступен на стороне клиента. Вставка Javascript будет работать, но если у клиента это отключено, вы не можете обойти это.
При этом, вот как вы можете сделать это в Javascript, используя mootools (jquery будет построен аналогично). Предполагая, что теги h1 являются единственными на странице, на которых мы должны выполнить вставку 'a', вы должны сделать:
var lastletter = null, firstletter, a;
$$('h1').each(function(el) {
firstletter = el.get('text').substr(0,1).toUpperCase();
if (firstletter != lastletter) {
a = new Element('a', { 'name': firstletter }).inject(el, 'before');
}
});
В псевдокоде: захватить все элементы h1. Зациклите результаты и извлеките заглавную копию первой буквы каждого текстового содержимого h1. Если эта буква не совпадает с последней буквой, то создайте элемент 'a', установите его параметр name и вставьте его в dom непосредственно перед проверкой h1.