2014-04-13 21 views
-1

不得不刪除我以前的帖子,因爲我沒有發佈JS樣本。我現在修復了它:JQuery和getelementbyid失敗,不是時間問題

我有一個ajax調用,返回一個新的評論(加載頁面後很久,所以我知道目標元素在DOM中正確),並將其附加到我的列表(在「 wli_5_comments .comments「使用jquery的append例程)。問題是我出於某種原因無法訪問「wli_5_comments」元素。 jquery並不認爲它存在,getelementbyid也不行。

例如,如果我使用document.getelementbyid(someid).innerHTML它告訴我「無法獲取未定義的HTML」或其他東西。警告那個或jQuery中的任何屬性都會導致同樣的結果:undefined ...不存在,儘管我可以在文檔檢查器中看到它。 id是相同的,引號很好,所有的標籤都正確關閉。 WTH?

<div id="wli_5_commments" class="wli_comments_area hide" style="display: block;"> 
<h2 class="hdr">Comments</h2> 
    <div class="comments"> 

     <div id="wlc_21" class="wli_comment" userid="9"> 
      <div class="msg">adfsgfhgsf</div> 
      <div class="name_area"> 
       <div class="name"><div>someuser</div> 
       <div class="date">(2014-04-12)</div> 
       </div> 
      </div> 
      <div class="buttons"><img class="delete_button" src="http://localhost:80/graphics/red_x_off.png" pop="Delete this comment"></div> 



     </div>  
        </div> 
       </div> 

這裏是我的測試代碼失敗,步步爲營(除導致預期「wli_5_comments」第一警報等):

    alert('wli_'+wli_key+'_comments'); 
       alert(document.getElementById('wli_'+wli_key+'_comments').innerHTML); 
       alert('#wli_'+wli_key+'_comments'+$('#wli_'+wli_key+'_comments').attr('id')); 
       console.log($('#wli_'+wli_key+'_comments').find('.comments').html()); 
       $('#wli_'+wli_key+'_comments .comments').append(msg['result']); 

還要注意,不僅是JS調用一個「document.ready」塊,但在用戶交互後才觸發的AJAX回調中。這與調用一個還不存在的元素有關(就像StackOverflow認爲我的問題是重複的所有其他答案一樣)。

+0

應該是'的document.getElementById( 'WLI _' + wli_key + '_意見')。innerHTML',而不是'的document.getElementById( 'WLI _' + wli_key + '_評論')。innerHTML的() '。 –

+0

固定。不用找了。 –

+0

你使用jquery的'ready()'? –

回答

0

Bah。我終於通過從我的控制檯顯示屏上將ID複製到我的警報代碼來解決此問題。當我這樣做時,我注意到「評論」和「評論」不是同一個詞(那裏有一個額外的「m」)。

感謝所有:)