closest
ищет предков, а не братьев и сестер; Кроме того, ваш селектор вначале пропускает .
(вы говорите ему искать элемент vuQuestionBubble
, где вы действительно имеете в виду div
с классом "vuQuestionBubble").
С вашей текущей структурой вы можете использовать next
, потому что div с "vuQuestionBubble" - следующий элемент. Однако, если вы когда-нибудь измените свою структуру и поместите что-то между ними, next
вам не подойдет.
Я бы, вероятно, использовал nextAll("div.vuQuestionBubble:first")
или nextAll(".vuQuestionBubble:first")
(ссылки: nextAll
, :first
):
$(document).ready(function () {
$('.prodQuestionMark').click(function () {
$(this).nextAll('div.vuQuestionBubble:first').show();
// Or without `div`:
//$(this).nextAll('.vuQuestionBubble:first').show();
});
});
Это найдет первый div с классом "vuQuestionBubble", который следует за img
как брат, даже если это не тот вправо рядом с img
, и поэтому делает ваш код менее подвержен проблемам с техническим обслуживанием, если разметка меняется незначительно.