Поскольку подписи и изображения имеют размер 1: 1, я бы сделал следующее:
$("img").each(function(index){
$(this).attr("title", $("span.tip").eq(index).text() );
});
Это будет циклически проходить по каждому изображению (должен сделать этот селектор более конкретным).При каждом цикле берется индекс (первое изображение имеет индекс 1, второй имеет индекс 2 и т. Д.), И получается соответствующий диапазон (первое изображение, первый диапазон; второе изображение, второй диапазон и т. Д.), В результате чегов его тексте, добавляемом к атрибуту заголовка изображения.
Вы можете даже еще больше упростить его:
$("img").attr("title", function(index){
return $("span.tip").eq(index).text();
});
Это приводит к следующему:
<ul>
<li><img src="src1" title="Caption 1"></li>
<li><img src="src2" title="Caption 2"></li>
<li><img src="src3" title="Caption 3"></li>
</ul>
Демо онлайн: http://jsbin.com/odeciv/edit: http://jsbin.com/odeciv/2/edit