2009-08-21 95 views
0

我需要更改javascript对象中的值。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> 

但是这种语法不起作用。

+0

我忘了说明。我无法更改var声明。 – Jeff 2009-08-21 20:39:51

回答

0

根据亚马逊的开发。 “

”您不能通过这种方式更改值,您已经直接设置了DOM元素 ,更改json对象只会更改json对象而不是 DOM元素。“

这是我最终做的。我与div.innerHtml + =“我添加的副本”连接在一起;

J.

0

我想你想要的是

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

Equals不起作用。我想连接。 – Jeff 2009-08-21 20:42:01

4

两点:

  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.'; 
+0

为简洁起见,我缩短了var声明。问题不在于逗号。 谢谢。 – Jeff 2009-08-21 20:43:45

+0

好吧,我只是告诉你,因为是一个常见的错误。 – CMS 2009-08-21 20:44:50

+0

顺便说一句,wba_product不是一个关联数组,它是一个对象字面值。 – CMS 2009-08-21 20:46:52