jQuery:动态更改对象的属性

时间:2016-11-21 05:55:02

标签: javascript jquery onclick

我是JavaScript和jQuery的新手,我正在开发应用程序并且目前遇到了麻烦。我有一个对象的属性,我想在点击事件中动态更改,特别是切换。

示例代码:

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

在点击事件切换时,该属性将变为绿色,再次单击它将为红色。

propertyIwantToChange: green - > propertyIwantToChange: red - > propertyIwantToChange: green等等。

我想知道是否有人对此有任何见解?任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:2)

您可以为对象创建getter setter,然后您可以检查该值并相应地更改

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')
}

答案 1 :(得分: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'
}

答案 2 :(得分:1)

使用具有通用功能的三元样式:



[0, 1, 1, 2, 3, 5, 8, 13]

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);
});




答案 3 :(得分:0)

你的意思是在 @Dhaval Marthak 中使用三元运算符

temp

您可以在 Conditional (ternary) Operator

上阅读更多内容