2009-08-21 5 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

ответ

0

По словам разработчика на Amazon.

«Вы не можете изменить значение таким образом, вы непосредственно установили элемент DOM , при изменении объекта json изменяется только объект json, а не элемент DOM."

Это то, что я закончил делать. Я конкатенирован с div.innerHtml + = «Моя добавленная копия»;

J.

0

Я думаю, что вы хотите

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

Равенство не работает. И я хотел бы объединиться. – Jeff

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

+0

Хорошо, я сказал вам только потому, что это распространенная ошибка. – CMS

+0

Кстати, wba_product не является ассоциативным массивом, это литерал объекта. – CMS