Я не могу найти селектор, подходящий для моих нужд, то есть получить первый (и единственный) элемент .info
span
перед элементом img
.Пожалуйста, будьте терпеливы, я новичок в jQuery:
<div> <!-- common parent -->
<span class="info"></span>
<p>Stuff</p><span>Other sfuff</span>
<!-- p, span or possibly other dom element before img -->
<img src="" alt="" class="highlight" />
<span class="info"></span>
<!-- here nothing precede img element -->
<img src="" alt="" class="highlight" />
</div>
Я пробовал:
$("img.highlight").prev("span.info")
(то есть непосредственно предшествующий брат ) потерпит неудачу впервый пример пока работает во втором.
$("img.highlight").prevAll("span.info")
не удастся со вторым, потому что будет выбран и первый диапазон.
EDIT : будетболее чистый это реальный код:
$("img.highlight").each(function() {
$info = $(this).selector("span.info") // selector() to be replaced
$info.text($(this).attr("src")); // Fill the right span.info
});