jquery - 如何显示显示:none if shopping cart is empty of items?的div

标签 jquery html if-statement hidden

遵循以下代码的逻辑:

<div id="add-to-cart-widget">
<div class="simpleCart_items"><div class="cartHeaders">
<div class="itemthumb">thumb</div><div  class="itemTotal">Total</div><div class="itemremove">remove</div>  </div>
</div>
<div id="if-cart-empty" style="display: none">Your cart is empty.</div>

只有 .itemContainer 存在时,商品才会出现在购物车中。对于添加到购物车的每个项目,都会创建一个新容器并将其放入 #add-to-cart-widget 中。

使用 jQuery,我如何检查 #add-to-cart-widget 是否显示 .itemContainer,如果不存在则显示 div #if-购物车为空?

-------- 编辑 -------- (在 jsFiddle 中工作但不在现场)

这是我在我网站上的帖子中放入的确切代码。我在 .itemremove 上添加了一个额外的 .click 事件,因此您可以单击“删除”容器并对其进行测试:

<div id="add-to-cart-widget">
<div class="simpleCart_items">
    <div class="cartHeaders">
            <div class="itemthumb">thumb</div>
            <div  class="itemTotal">Total</div>
            <div class="itemremove">remove</div>
        </div>
</div>
<div id="if-cart-empty" style="display:none;">Your cart is empty.</div>
    </div>    

<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript"> 
$(document).ready(function(){
if (!$('.itemContainer').is(":visible")) {
    $('#if-cart-empty').show();
} else {
    $('#if-cart-empty').hide();
}

$('.itemremove').click(function(){
 $('.itemContainer').hide();
});
    });
</script>

<style type='text/css'>
  .itemContainer {background:red;}
</style>

忘了放一个测试站点的链接:

http://sitetestexample.blogspot.com/p/cart-empty-test.html

这是 #add-to-cart-widget 将商品添加到购物车时的样子(上面的第一个代码是购物车中没有任何商品时的样子) :

<div id="add-to-cart-widget">
<div class="simpleCart_items">
<div class="cartHeaders">
<div class="itemthumb">thumb</div>
<div class="itemTotal">Total</div>
<div class="itemremove">remove</div></div>
    <div class="itemContainer"><div class="itemthumb">
       <img border="0" src="http://3.bp.blogspot.com/-CB2o1hPryRo/Ub54iT3ggVI/AAAAAAAAFJY/W6iBiOFaggo/s1600/picture+001.jpg">
</div>
<div class="itemTotal">$80,000.00</div>
<div class="itemremove"><a href="javascript:;" onclick="simpleCart.items['c3'].remove();">x</a> 
</div></div></div>
<div id="if-cart-empty" style="display:none;">Your cart is empty.</div>
</div>

最佳答案

更新答案

演示 http://jsfiddle.net/yeyene/BAs2m/8/

移除item后,需要再次检查itemContainer是否还在。

由于您要删除项目,我建议使用 .remove() 而不是 .hide()

checkCart();

$('.itemremove').click(function(){    
    $('.itemContainer').remove();  
    checkCart();
});

function checkCart(){
    var item = $('.itemContainer');
    if (item.length > 0) {
        $('#if-cart-empty').hide();
    } else {
        $('#if-cart-empty').show();
    }
}

关于jquery - 如何显示显示:none if shopping cart is empty of items?的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606629/

相关文章:

javascript - 带八位字节通配符和范围的 IP 地址

javascript - 在动态生成的表angularjs中显示/隐藏元素(div)

javascript - 在 JavaScript block 上使用 HTML 注释是否仍然有意义?

c - if/else if/else 菜单问题 c

javascript - 有没有办法从同一个列表中检索项目并将它们注入(inject)不同的页面?

javascript - 预加载图像?

jquery - 是否可以使用 'and' 或 'or' 来加入多个选择器? (JQuery)

php - 使用 while 和 if 组合比较 mysql/php 中两个表的值

jquery - 简单的跨浏览器文本区域扩展器

jquery - Slick carousel - 如果在父元素中淡入淡出,则第一张图片不会显示