2

我有示例 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 做到这一点?

4

5 回答 5

6

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

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

或者干脆

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

:has 选择器的 jQuery 文档

于 2012-12-18T15:46:02.953 回答
4
$('.product', '.category').filter(function() {
    return parseint($(this).children('input[type="text"]').val(),10) !== 0;
}).dosomething();

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

于 2012-12-18T15:44:15.623 回答
2

你可以使用以下

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

这将为您提供所有.products具有值 <>0 的文本框

看看这里

于 2012-12-18T15:47:06.743 回答
1
$('.product input[value!="0"]').closest('.product');

也许是这样的?

于 2012-12-18T15:49:09.873 回答
0

试试这个 ::

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

演示

于 2012-12-18T15:48:40.637 回答