JQuery .children()没有返回动态添加的元素?

时间:2017-04-26 15:43:27

标签: javascript jquery html jquery-selectors dynamically-generated

我正在集成实时聊天功能,我正在尝试使用JQuery语句从聊天启动前未创建的div ID中获取聊天会话ID。 (它会动态添加到页面中。)当然,从逻辑上讲,我确保在聊天开始并且存在之前我不会尝试选择该元素。这是相关的HTML结构和我正在使用的代码行:

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]

最奇怪的是,在正常情况下,当我在关闭聊天时在我的脚本中运行它或者在聊天开始后我在谷歌Chrome开发者工具控制台中运行它时,它不起作用:

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

...但如果我只是右键单击我页面上的聊天窗口并选择&#34;检查&#34;,然后在控制台中运行相同的代码行...它可以工作:

Output:
    "5748220"

如何检查HTML wilth Chrome突然导致它工作......?如何在我的脚本中执行这个隐藏的魔法?

1 个答案:

答案 0 :(得分:0)

因此,问题似乎与我尝试访问的孩子位于iFrame中的事实有关,显然您无法访问iFrame中的外部动态添加内容。我想JQuery只是在检查之后才意识到内部是什么,因为它被迫发现元素。