2012-12-21 56 views
0

我有一個包含一個HTML文檔:使用Ajax JSON編碼的JavaScript拋出一個錯誤消息

 <li id="li_273" data-pricefield="special" data-pricevalue="0" > 
     <label class="description" for="element_273">Helium Foil Balloon #1 </label> 
      <div> 
       <input type="text" class="element text medium" id="element_273" name="element_273" size="30" value="" /> 
       <input type="hidden" id="element_273_price" name="element_273_price" value=""> 

      </div> 
     </li> 

那麼,該地區是一個Ajax下拉菜單。從AJAX/PHP的下拉我能夠執行一個onclick命令 - 這是我有:

'onclick' => 'document.getElementById(\'li_273\').data(\'pricevalue\',\'1.00\');', 

這一切得到json_encoded,這是它返回部分:

"onclick":"document.getElementById('li_273').data('pricevalue','1.00');", 

但但我收到一條錯誤消息時,我選擇了ajax菜單的東西和的onclick:

Uncaught TypeError: Object #<HTMLLIElement> has no method 'data' 

我不能爲我的生活想出解決辦法,所有我需要做的僅僅是更新的價格是在頁。

更新:這裏是代碼的其餘設法得到它在頁面上實際計算 JavaScript的:

 $('#main_body li[data-pricefield="special"]').delegate('onclick','change', function(e) { 
     var temp = $(this).attr("id").split('_'); 
     var element_id = temp[1]; 

     var pricedef = $(this).data('pricedef'); 
     if(pricedef == null){ 
      pricedef = 0; 
     } 

     $("#li_" + element_id).data("pricevalue",pricedef); 
     calculate_total_payment(); 
      }); 

什麼似乎缺少?因爲它不會更新頁面上的總數。

回答

3

.data是一個jquery函數,你可能試圖在一個dom對象上調用它。請確保您有jQuery的加載頁面上,然後做:

jQuery('#li_273').data('pricevalue','1.00'); 
+0

多數民衆贊成似乎已經採取了錯誤的照顧。我怎樣才能確認它?如果我嘗試查看源代碼,它顯然會將價格設置爲0.是否有方法可以查看它以確保它已更新?我使用的是Chrome的開發人員工具 – MrTechie

+1

如果您使用chrome或firefox加載頁面,請執行您的操作以設置數據,然後進入javascript控制檯並輸入'jQuery('#li_273')。data('pricevalue'); '。如果控制檯返回「1.00」,那麼你知道它的工作。 –

+1

請參閱http://stackoverflow.com/questions/66420/how-do-you-launch-the-javascript-debugger-in-google-chrome瞭解如何在Chrome –