2016-05-14 86 views
-2

http://darrenbachan.com/遺漏的類型錯誤:無法讀取的未定義的屬性「長」 - 無法修復/調試此

http://darrenbachan.com/js/main.js

我不知道如何解決這個問題。我根本不知道JavaScript來調試或理解其他文章/線程。要顯示錯誤,請點擊不是前兩個的項目,然後在控制檯中看到它。

我有項目:

'zeckoshop' : { 
      'title' : 'zeckoShop', 
      'description' : 'An all-in-one ecommerce platform designed to seamlessly integrate with your business operations.', 
      'link' : 'http://darrenbachan.com/playground/zeckoshop/index.html', 
      'images': [ 
       '/images/zeckoshop/zeckoshop-1.jpg' 
      ], 
      'tags': [ 
       'Web Design', 
       'Web Development' 
      ], 
      'process-description' : 'An all-in-one ecommerce platform designed to seamlessly integrate with your business operations.', 
      'process-wireframes': [ 
       '/images/zeckoshop/zeckoshop-1.jpg' 
      ] 
     }, 

     'diamond-hand-car-wash' : { 
      'title' : 'Diamond Hand Car Wash', 
      'description' : 'Feeling luxurious is only one car wash away.', 
      'link' : 'http://darrenbachan.com/playground/diamond-hand-car-wash/index.html', 
      'images': [ 
       '/images/diamond-hand-car-wash/diamond-1.jpg' 
      ], 
      'tags': [ 
       'Web Design', 
       'Web Development' 
      ], 
      'process-description' : 'test', 
      'process-wireframes': [ 
       '/images/zeckoshop/zeckoshop-1.jpg' 
      ] 
     }, 

     'edutravel-for-credit' : { 
      'title' : 'EduTravel For Credit', 
      'description' : 'Innovative travel for credit. Completely engage in your learning through exploration and discovery.', 
      'link' : '', 
      'images': [ 
       '/images/edutravel-for-credit/edu-1.jpg', 
       '/images/edutravel-for-credit/edu-2.jpg', 
       '/images/edutravel-for-credit/edu-3.jpg', 
       '/images/edutravel-for-credit/edu-4.jpg' 
      ], 
      'tags': [ 
       'Web Design', 
       'Newsletter' 
      ] 
     }, 

因爲「過程的描述」和「過程線框」不上項目「edutravel換貸」它創建了一個錯誤。

,拉本內容的代碼是:

if($('#process-description').length) { 
      $('#process-description').html(projectData['process-description']).show(); 
     } else { 
      $('#process-work').hide(); 
     } 
     $('#process-wireframes').empty(''); 

     $.each(projectData['process-wireframes'], function(item) { 
      $('#process-wireframes').append('<div class="project-gallery"><img src='+projectData['process-wireframes'][item]+' /></div>') 
     }); 

它吐出內容到這個網站:

<div id="process-work"> 
    <h2 id="process-title">Process Work</h2> 
    <p id="process-description"></p> 
    <div id="process-wireframes"></div> 
</div> 

我簡直不知道如何調試這個問題,可以使用任何的幫助,我可以得到。無論是在這裏還是在Skype會話或其他東西。我需要絕望地顯示這些內容。

+5

可能重複的[無法調試]未捕獲的TypeError:無法讀取未定義的屬性'長度'](http://stackoverflow.com/questions/37221519/cant-debug-uncaught-typeerror-cannot-read- property-length-of-undefined) –

+2

你現在已經問過同樣的問題了4次。請停止。如果你編輯你的問題,它會向上移動,但請不要再發布。這篇文章已被標記爲關閉。 –

+0

@RachelGallen我之前編輯過我的問題。其他問題之一是關於特定if/else語句的問題,導致這個問題在評論中被稍微討論。我承認我沒有聽懂這個問題,那是因爲即使在編輯這個問題之後,我也沒有迴應,但是我做到了,我確實看到有人試圖幫助我。很抱歉打破網站的規則。 –

回答

0

我在chrome上看不到控制檯錯誤。儘管控制檯錯誤,項目是否正確加載?我想知道是否由於hacky .length調用來檢查元素是否存在。但是,以幫助您瞭解的排序發生了什麼的......

,你叫.length在這行代碼的唯一的地方:

if($('#process-description').length) {

因此,在某種程度上$('#process-description')是不確定的。這是jQuery的方式來檢索您的HTML元素與ID「process-description」即使它很明顯在您的HTML。所以要麼jQuery沒有加載,在這種情況下,我期望編譯錯誤$ is not a function或元素不存在,這不會導致控制檯錯誤,所以你需要給我們更多的信息。

+1

如果您需要澄清,請發表評論。這不會回答[重複]問題 –

+0

這不是唯一一個調用'.length'的地方。它也被'$ .each()'內部使用,所以如果你執行'$ .each(undefined,...)',你會得到這個錯誤。 – Barmar

+0

@barmar很高興知道,謝謝。我不熟悉jQuery – PDN

0

在嘗試迭代它之前,測試屬性是否存在。

if (projectData['process-wireframes']) { 
    $.each(projectData['process-wireframes'], function(item) { 
     $('#process-wireframes').append('<div class="project-gallery"><img src='+projectData['process-wireframes'][item]+' /></div>') 
    }); 
} 

的錯誤發生,因爲與$.each啓動代碼:

each: function(obj, callback, args) { 
    var value, 
     i = 0, 
     length = obj.length, 
     isArray = isArraylike(obj); 

obj是不確定的,行length = obj.length得到一個錯誤。

相關問題