簡體   English   中英

js在控制台中工作,但不是從功能

[英]js working in console but not from function

從ajax調用返回的數據后,我正在調用以下函數。 它執行第一個console.log(),其中包含來自ajax調用的數據。 但是each()循環遍歷-響應,沒有console.log任何東西。

primaSaveOrder.prototype = {

     start: function(response){

        console.log(response)

        $j('#primaId').val('');
        $j('#dialog').closest('.ui-dialog-content').dialog('close');


        $j.each(response['billing'], function(i, val) {
          console.log(response['billing'][i])
        });
    },
 }

我認為我的代碼不是很錯誤,因為如果我在控制台中手動創建一個等於-console.log(response)輸出的變量,然后運行-

  $j.each(response['billing'], function(i, val) {
          console.log(response['billing'][i])
        });

有用。 我更喜歡運行$j('#' + i).val(response['billing'][i])而不是console.log(response['billing'][i]

如果我直接在瀏覽器中但不在文件中這樣做,這也可以工作。 我認為它是相關的,但我不知道如何解決它。

這是我為了保護隱私而更改某些數據的示例

  {"billing":{"order-billing_address_firstname":"test","order-billing_address_lastname":"test","order-billing_address_street0":"6  test","order-billing_address_street1":"test","order-billing_address_city":"","order-billing_address_country_id":"GB","order-billing_address_region":"","order-billing_address_postcode":"16","order-billing_address_telephone":"","order-billing_address_vat_id":"","order-billing_address_prima_address_code":"0"},"shipping":{"order-shipping_address_firstname":"test","order-shipping_address_lastname":"test","order-shipping_address_street0":"6 test","order-shipping_address_street1":"test","order-shipping_address_city":"","order-shipping_address_country_id":"GB","order-shipping_address_region":"","order-shipping_address_postcode":"16","order-shipping_address_telephone":"","order-shipping_address_vat_id":"","order-shipping_address_prima_address_code":"0"}} 

響應的類型可能是String。 在這種情況下,使用將響應轉換為json

response = JSON.parse(response);

在使用響應進行迭代之前。

我沒有說,這會有所幫助,但是有幾件事應該檢查問題根:

  1. 檢查元素是否存在並且它們確實是唯一的(因為使用了ID)。 console.log(i, $j('#' + i).size())可以解決問題。 我認為可能沒有設置值的要素。
  2. 直接使用val參數,而不是通過response['billing'][i]引用它。 盡管我看不到response var如何被覆蓋或隱藏,但是由於將其傳遞到回調中,所以我們直接使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM