Try: $j.data(item, 'attributes').WarehouseKey = $j('#< %=ItemWarehouseList.ClientId%>').val();
On Apr 16, 8:12 am, "Richard D. Worth" <rdwo...@gmail.com> wrote: > On Wed, Apr 15, 2009 at 1:50 AM, Dhana <sldh...@gmail.com> wrote: > > > I am using the jQuery Data method to store data for dynamically > > created elements. Everything works fine until I try to update the > > value of an attribute. > > This is how I first create the element. > > > $j.data(item, 'attributes', { > > Name: name, > > UOM: uom, > > WarehouseKey: orderItem.WarehouseKey, > > OriginalPrice: orderItem.OriginalPrice, > > ReqDate: dsOrder.cleanupResults(orderItem.ReqDate), > > WarehouseItemKey: orderItem.WarehouseItemKey, > > AvailableQty: orderItem.AvailableQty, > > BOQty: orderItem.BOQty, > > Notes: dsOrder.cleanupResults(orderItem.Notes), > > Cost: orderItem.Cost, > > GP: dsOrder.cleanupResults(orderItem.GP), > > Description: dsOrder.cleanupResults > > (orderItem.description) > > }); > > > At a later point based on a user's interaction, the required date, > > note, and warehouse key gets updated. > > > This is the first way I tried updating it, it doesn't store the value. > > $j(item, 'attributes.ReqDate', $j('#section_item #requiredDate').attr > > ('value')); > > This doesn't work because the text after the dot (.) is the namespace of the > data attribute. > > > > > Then I tried it like this > > $j.data(item, 'attributes', { > > 'WarehouseKey': $j('#<%=ItemWarehouseList.ClientId > > %>').val() > > }); > > > This overwrited all the other data stored in 'attributes'. Only > > WarehouseKey is then saved. > > > Is there a way to change just one value without affecting the rest of > > the data? > > Grab the hash, modify the value, then put it back: > > var attr = $j.data(item, 'attributes'); > attr.WarehouseKey = $j('#<%=ItemWarehouseList.ClientId%>').val(); > $j.data(item, 'attributes', attr); > > - Richard