2012-02-03 14 views
1

私はリスト要素に商品が設定されているため、最終的な価格を計算する必要がありますが、そのためには魔女の商品に同じ税金があることが必要です。JQueryループで別のattr( 'tax')を見つけよう

これを行うと、私はそれらを分離することができますが、これを自動的に行うにはどうすればよいですか?私が税金を知らないと、どうやって違う税金を見つけて彼らに加わることができますか?

希望私の英語は自分自身を明確にすることは良いです。

おかげ

$('#list').find('li').each(function(i) { 
    if($(this).attr('tax') == 6) { 
     console.log('6'); 
    } else if($(this).attr('tax') == 13) { 
     console.log('13'); 
    } else if($(this).attr('tax') == 23) { 
     console.log('23'); 
    } else { } 
}); 
+0

グループの李項目に、このような方法でクロージャを使用して、サイクルをオブジェクトを通して、あなたの計算を行うために(または1回だけでそれを行う単純であれば...)だから、各リスト項目にどのような税金があるのか​​を知りたいのであれば、そのすべてを1つの変数に追加するのですか? –

+0

または、同じ税金を持つ各要素を配列にグループ化しますか? –

+0

各リスト項目にどのような税金があるか調べたいので、税込み(?)=€... – Pluda

答えて

1

function calc_prices() 
{ 
    var tax_groups = {}; 
    $('#list').find('li').each(function(i) { 

    if(!tax_groups[$(this).attr('tax')]) tax_groups[$(this).attr('tax')] = []; 
    tax_groups[$(this).attr('tax')].push($(this)); 
    }); 
    console.log(tax_groups); 
    //Do your math here by looping or accessing tax_groups 
} 
+0

ありがとう、それは今働いている! – Pluda

2

これは特性の異なる税値は「データ」オブジェクトを作成し、各プロパティの値が一致するDOM要素の配列です。

var data = {}; 

$('#list').find('li').each(function(i) { 
    var tax = $(this).attr('tax'); 
    if(!data[tax]) data[tax] = []; 

    var len = data[tax].length; 
    data[tax][len] = this; 
}); 
+0

の例10の項目を計算できますが、税金がわからない場合はどうなりますか? – Pluda

+0

@Pluda - 編集を参照 – sje397

関連する問題