2012-12-18 2 views
1

수량이 다른 경우 단가가 변경됩니다. 수량 드롭 다운 상자, 단가, 부분합 및 합계에 대한 기간이 있습니다.selectfield 값을 사용하여 json 테이블을 검색

드롭 다운 상자가 변경되면 단가가 업데이트되고 부분합이 업데이트되고 총 가격이 업데이트되도록 변경하고 싶습니다.

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

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

내가 pricetable.$('#quantity').val()이 잘못 알고 있지만, JSON 가격 테이블을 조회하는 $('#quantity').val()를 사용하는 방법을 모른다 : 지금까지 내가 사용하고 있습니다. 사전에이 같이

답변

4

에서

감사 :

자바 스크립트 객체가 아닌 JSON 테이블이 당신이이
$('#unitprice').text(pricetable[$('#quantity').val()]); 
// Note the square brackets ---^--------------------^ 

. (JSON은 데이터 교환에 사용되는 텍스트 표기법으로 소스 코드로 JSON은 하위 집합이며 JavaScript 개체 이니셜 라이저 구문입니다.

자바 스크립트에서 다음을 참조 할 수 있습니다. 두 가지 방법 중 하나를 사용하여 객체에 대한 특성 :

  1. 점 표기법과 문자 속성 이름, 예를 들어, obj.foo 사용.

  2. 괄호 표기법과 문자열 속성 이름 (예 : obj["foo"])을 사용합니다. (당신이 문자열 이외의 것을 사용하는 경우는 사용하기 전에 문자열로 변환합니다.)

후자의 경우, 문자열은 어떤 식의 결과 일 수있다, 그것은을 할 필요가 없습니다 정확한.

그래서 위의 코드의 라인에, 우리는 문자열 등 "1", "2"처럼 될 것 quantity 상자의 현재 가치를, 그리고 우리는 pricetable 객체의 관련 속성을 찾아 볼 것을 사용합니다. 마지막으로 this를 사용하여 unitprice 요소의 텍스트를 설정합니다.

3

.[] 표기법은 동일하지만 [] 표기법을 사용하면 유효하지 않은 키 또는 동적 키를 입력 할 수 있습니다.

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