Можете ли вы просто установить ширину <li>
на ту же ширину, что и изображение, и установить <span>
как display: block
;
В этом случае промежутки будут такими же широкими, как и их(<li>
), и это избавляет вас от лишних jquery, пытающихся копать до уровня span.
Кроме того, чтобы ускорить работу вашего селектора jquery, просто добавьте идентификатор в список и выберите его вместо попыткисоответствовать ul li a...
;теперь все, что вам нужно сделать, это сопоставить #widths
.
Пример
<ul id="widths">
<li><a href="#"><img src="path_to_image1"><span>some text</span></a></li>
<li><a href="#"><img src="path_to_image2"><span>some text</span></a></li>
<li><a href="#"><img src="path_to_image3"><span>some text</span></a></li>
</ul>
$(document).ready(function() {
$('#widths img').each(function() {
var imgWidth = $(this).width();
$(this).next('span').css({'width': imgWidth});
});
});