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 を使用してすべてのカテゴリを取得する必要があります。ここで、少なくとも 1 つの製品の数量が正です。

次のようになります (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])');

hasSelectorの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 に答える