2016-11-21 10 views
0

저는 JavaScript 및 jQuery를 처음 사용하고 있으며, 현재 응용 프로그램을 작성 중이며 현재 문제가 있습니다. click 이벤트에서 동적으로 변경하려는 객체의 속성이 있습니다. 특별히 토글하는 것입니다.jQuery : 객체의 속성을 동적으로 변경하십시오.

예제 코드 :

var apples = { 
value: "$1.00", 
propertyIwantToChange: red 
}; 

클릭 이벤트 토글 있으며,이 건물은 녹색으로, 그리고 빨간색 것 다시 클릭합니다.

propertyIwantToChange: green ->propertyIwantToChange: red ->propertyIwantToChange: green 등등.

누군가이 사실에 대해 통찰력이 있는지 궁금합니다. 어떤 도움을 주셔서 감사합니다.

+1

'apples.propertyIwantToChange = apples.propertyIwantToChange =='green '까지 사례의 해결 방법은 무엇입니까? '빨강': '녹색'! –

답변

1

에 더 읽을 수 @Dhaval Marthak 여기 말했다 삼항 연산자를 사용하는 의미 :

var apples = { 
 
    value: "$1.00", 
 
    propertyIwantToChange: 'green' 
 
}; 
 

 
var toggle = function(obj, prop, first, second) { 
 
    obj[prop] = obj[prop] == first ? second : first; 
 
}; 
 

 
$('input').on('click', function() { 
 
    toggle(apples, 'propertyIwantToChange', 'green', 'red'); 
 
    console.log(apples.propertyIwantToChange); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="button" value="Toggle value" />

1

희망이 조각은 당신이 개체에 대한 게터 세터를 만들 수 있습니다

var apples = { 
    value: "$1.00", 
    propertyIwantToChange: 'red' 
    }; 
    function onClickHndler() { 
    // check the property value & change it 
    //using ternary operator 
    apples['propertyIwantToChange'] == 'red' ? 
    apples['propertyIwantToChange'] = 'green' : 
    apples['propertyIwantToChange'] = 'red' 
} 
+0

미안하다. 감사합니다. – brk

2

도움이 될 것입니다 그리고 당신은 다음의 onclick 값을 확인 따라

var apples = { 
value: "$1.00", 
propertyIwantToChange: 'red', 
getpropertyIwantToChange : function(){return this.propertyIwantToChange}, 
setpropertyIwantToChange : function(val){this.propertyIwantToChange = val} 
} 
그것을 값을 확인하고 변경할 수 있습니다 원하는대로 값을 설정하십시오.

if(apples.getpropertyIwantToChange() == 'red'){ 
    apples.setpropertyIwantToChange('green') 
    }else{ 
    apples.setpropertyIwantToChange('red') 
} 
0

당신은

apples.propertyIwantToChange = apples.propertyIwantToChange == 'green' ? 'red' : 'green'

당신은 일반적인 기능 삼항 스타일을 사용 Conditional (ternary) Operator

관련 문제