Два способа обработки ошибок,
Я предлагаю использовать $(this).parent().find('item-price')
, потому что он также будет работать, когда позиция HTML-кода изменилась, поэтому лучше использовать это.
$(document).ready(function() {
$(".item-btn").click(function() {
$('.item-price').hide();
$(this).parent().find('.item-price').toggle();
});
});
li {
list-style: none;
background: #ddd;
margin-bottom: 30px;
padding: 5px;
}
.item-price {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main-list">
<ul class="lict-block">
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
</ul>
</div>
Вы можете использовать .siblings()
, чтобы выбрать элемент
$(document).ready(function() {
$(".item-btn").click(function() {
$(this).siblings('.item-price').toggle();
});
});
li {
list-style: none;
background: #ddd;
margin-bottom: 30px;
padding: 5px;
}
.item-price {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main-list">
<ul class="lict-block">
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
</ul>
</div>
Вы должны использовать $(this)
и .next()
, поэтому вы должны получить доступ к нажатому элементу.
$(document).ready(function(){
$(".item-btn").click(function(){
$(this).next(".item-price").toggle();
});
});
li{
list-style:none;
background:#ddd;
margin-bottom:30px;
padding:5px;
}
.item-price{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main-list">
<ul class="lict-block">
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
<li class="item">
<div class="item-img"></div>
<div class="item-content">
<div class="item-btn">Show Price</div>
<div class="item-price">
<h3>23.66</h3>
</div>
</div>
</li>
</ul>
</div>