Я хотел бы проверить, совпадает ли один тег li с одним или двумя тегами img, и запустить сценарий jQuery только при наличии двух тегов img. Теперь, когда один li содержит только одно изображение, оно исчезает после щелчка.
Должно работать следующее:
$(document).ready(function () {
$("#list-of-images li img:first-child").click(function () {
$(this).hide();
$(this).next().show();
});
$("list-of-images li img:nth-child(2)").click(function () {
$(this).hide();
$(this).prev().show();
});
});#list-of-images li img:nth-child(2) {
display: none;
}<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<ul id = "list-of-images">
<li>
<img src = "https://cdn.infobeamer.com/s/6bd893/img/hosted-restaurant.png" />
<img src = "https://cdn.infobeamer.com/s/e67487/img/hosted-your-usecase.png" />
</li>
<li>
<img src = "https://cdn.infobeamer.com/s/6bd893/img/hosted-restaurant.png" />
<img src = "https://cdn.infobeamer.com/s/e67487/img/hosted-your-usecase.png" />
</li>
</ul>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Сначала проверьте длину изображения в выбранном li.
Проверьте, больше ли длина следующего img 0 или нет. Если это правда, показать следующее, иначе показать предыдущее изображение.
$("#list-of-images li img").click(function () {
if ($(this).parent().find('img').length == 2) {
$(this).hide();
if ($(this).next('img').length> 0)
$(this).next('img').show();
else
$(this).prev('img').show();
}
});#list-of-images li img:nth-child(2) {
display: none;
}<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<ul id = "list-of-images">
<li>
<img src = "https://cdn.infobeamer.com/s/6bd893/img/hosted-restaurant.png" />
<img src = "https://cdn.infobeamer.com/s/e67487/img/hosted-your-usecase.png" />
</li>
<li>
<img src = "https://cdn.infobeamer.com/s/6bd893/img/hosted-restaurant.png" />
<img src = "https://cdn.infobeamer.com/s/e67487/img/hosted-your-usecase.png" />
</li>
</ul>
Большое спасибо, это именно то, что я искал.