0

我正在整合一個實時聊天功能,我正嘗試使用一個JQuery語句來獲取聊天會話ID,這個聊天會話ID是一個直到聊天開始才創建的div ID。 (它被動態添加到頁面中。)當然,從邏輯上講,我確保在聊天開始並且存在之前,我不會嘗試選擇該元素。下面是相關的HTML結構和我使用的代碼行:JQuery .children()不返回動態添加的元素?

HTML:

<!--These do not exist until a chat is started--> 
    <div class="customer_inner_widget"> 
     <div id="chat-session-5748220" style="height:100%;"> 

JQuery的:

$(".customer_inner_widget").children().first().attr("id").split("-")[2] 

最奇怪的是,在正常情況下無論是當我在關閉聊天時在腳本中運行它時,或者我在Google Chrome開發人員工具控制檯中運行它後,聊天開始後,它不起作用:

Output: 
    Uncaught TypeError: Cannot read property 'split' of undefined 
     at <anonymous>:1:58 

...但如果我只是右邊的聊天窗口上點擊我的頁面上,選擇「檢查」,然後運行相同的代碼行控制檯...它的工作原理:

Output: 
    "5748220" 

如何檢查HTML會導致Chrome瀏覽器突然啓動...?我如何在腳本中執行這個隱藏的魔法?

+1

你的ID沒有關閉雙引號,在該上下文中使用的jQuery並不在意何時創建該元素 –

+0

我的壞,HTML是正確的我只是在這裏手動輸入,因爲我無法弄清楚如何複製只有一行鉻 – Reddy

+3

很難知道當你運行你的jQuery代碼,並且你沒有提供這個代碼正在運行的任何上下文。如果你可以創建一個小例子來說明你的問題(我知道,它可能很難,但你可以硬編碼一些東西),這將非常有用,以獲得非常好的迴應。 – ProgrammerV5

回答

0

所以這個問題似乎與我試圖訪問的孩子位於一個iFrame內的事實有關,顯然你不能在iFrame內訪問外部動態添加的內容。我猜JQuery只是在檢查後才知道內部是什麼,因爲它被迫去發現元素。