【问题标题】:Javascript object member reassignment of valueJavascript对象成员重新赋值
【发布时间】:2009-08-21 20:32:27
【问题描述】:

我需要更改 javascript 对象中的值。

var wba_product = {
    sku:'12ZB7',
    availability:'Usually ships in 1-2 business days',
}

我想用 javascript 来改变它。

<script language="javascript" type="text/javascript>
if(wba_product.sku == '12ZB7') wba_product.availability + ' Items are charged to your credit card only when they ship. Your credit card will not be charged until the item is shipped to you. ';
</script>

但是这种语法不起作用。

【问题讨论】:

  • 我忘了注意。我无法更改 var 声明。

标签: javascript object concatenation


【解决方案1】:

两点:

  1. availability 成员末尾有一个逗号,IE 不允许这样做。

  2. 要为变量和对象成员赋值,请使用=assignment operator


var wba_product = {
    sku:'12ZB7',
    availability:'Usually ships in 1-2 business days' // notice the comma removed
}

if(wba_product.sku == '12ZB7') {
  wba_product.availability = 'new value';  // assign a new value
}

如果你想在可用性成员的末尾连接一个字符串,你可以这样做:

 wba_product.availability += ' concatenated at the end.';

【讨论】:

  • 为简洁起见,我缩短了 var 声明。问题不在于逗号。谢谢。
  • 好吧,我告诉你只是因为这是一个常见的错误。
  • 顺便说一下 wba_product 不是一个关联数组,它是一个对象字面量。
【解决方案2】:

我想你想要的是

if(wba_product.sku == '12ZB7') {
    wba_product.availability += 'Items are charged to...';
}

【讨论】:

    【解决方案3】:

    据亚马逊的开发者称。

    "你不能这样改变值,你已经设置了DOM元素 直接,更改 json 对象只会更改 json 对象而不是 DOM 元素。”

    这就是我最终所做的。我连接了 div.innerHtml += "My added copy";

    J.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-28
      • 2015-05-24
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2012-02-16
      相关资源
      最近更新 更多