1

数量が異なると、単価が変わります。数量ドロップダウンボックス、単価、小計、合計のスパンがあります。

ドロップダウンボックスを変更すると、単価が更新され、次に小計が更新され、次に合計価格が更新されるようにしたいと思います。これまで私が使用しているもの:

$('#quantity').change( function() {
    var pricetable = {
        "1": "368",
        "3": "338",
        "6": "298"
    }

    $('#unitprice').text(pricetable.$('#quantity').val());
    $('#subtotal').text($('#unitprice').val() * $('#quantity').val());
    subtotalsum();
});

私はそれが間違っていることを知っていますが、JSON価格表を検索するpricetable.$('#quantity').val()ために使用する方法がわかりません。$('#quantity').val()

前もって感謝します

4

2 に答える 2

4

このような:

$('#unitprice').text(pricetable[$('#quantity').val()]);
// Note the square brackets ---^--------------------^

そこにあるのは、JSONテーブルではなくJavaScriptオブジェクトです。(JSONは、データ交換に使用されるテキスト表記です。これはソースコードです。JSONは、そこで使用しているもののサブセットであり、JavaScriptオブジェクト初期化構文です。)

JavaScriptでは、次の2つの方法のいずれかでオブジェクトのプロパティを参照できます。

  1. ドット付き表記とリテラルプロパティ名を使用します(例:obj.foo

  2. 括弧で囲まれた表記と文字列プロパティ名を使用します(例:obj["foo"]。(文字列以外のものを使用する場合は、使用前に文字列に変換されます。)

後者の場合、文字列は任意の式の結果である可能性があり、リテラルである必要はありません。

したがって、上記のコード行では、quantityボックスの現在の値を取得します。これは、、などの文字列になり"1""2"それを使用してオブジェクト内の関連するプロパティを検索しpricetableます。最後に、これを使用してunitprice要素のテキストを設定します。

于 2012-12-18T17:20:27.730 に答える
3

.and[]表記は同等ですが、この表記を使用すると、他の[]方法では無効になるキー、または動的キーを入力できます。

my_obj.prop;
my_obj["prop"];
my_obj.some prop; // syntax error
my_obj["some prop"]; // works
my_obj[some_var]; // the value of some_var is used as the key
于 2012-12-18T17:22:40.070 に答える