jQuery使用子条件选择对象

时间:2012-12-18 15:41:57

标签: jquery

我有示例HTML代码:

<div class="category">
     <div class="product">
         <!-- some product info -->
         <input type="text" value="0" /> <!-- it is quantity -->
     </div>
<!-- ... other products -->
</div>
<!-- ... other categories -->

所以我需要使用jQuery来获取所有类别,其中至少有一个产品具有正数量。

看起来像这样(在C#中)

var filteredCategories = categories.Where(c => c.Products.Any(p => p.Quantity !=0));

如何使用jQuery做到这一点?

5 个答案:

答案 0 :(得分:5)

您可以使用.filter() jQuery方法

var filtered = $(".product").filter(function(){return this.find('input').val()>0});

或只是

var filtered = $('.product:has(input[value!=0])');

:has Selector

的jQuery文档

答案 1 :(得分:3)

$('.product', '.category').filter(function() {
    return parseint($(this).children('input[type="text"]').val(),10) !== 0;
}).dosomething();

您应该考虑在数量输入中添加一个类来定位它,因为使用此方法也会选择.product元素中的任何其他文本输入。

答案 2 :(得分:2)

您可以使用以下

$('.product').​​​​​​​has(':text[value!=0]')

这将为您提供所有.products个文本框,其值为&lt;&gt; 0

看看here

答案 3 :(得分:1)

$('.product input[value!="0"]').closest('.product');

也许是这样的?

答案 4 :(得分:0)

试试这个::

$("div.product input[value!=0]:text").parents(".category")

<强> DEMO