Javascript JQuery.children()是否不返回动态添加的元素?

Javascript JQuery.children()是否不返回动态添加的元素?,javascript,jquery,html,jquery-selectors,dynamically-generated,Javascript,Jquery,Html,Jquery Selectors,Dynamically Generated,我正在集成实时聊天功能,并尝试使用JQuery语句从一个div ID中获取聊天会话ID,该div ID在聊天开始之前不会创建。(它是动态添加到页面的。)当然,从逻辑上讲,我要确保在聊天开始并且元素存在之前,我不会尝试选择该元素。以下是我正在使用的相关HTML结构和代码行: HTML: 最奇怪的是,在正常情况下,无论是在关闭聊天时在脚本中运行,还是聊天开始后在GoogleChromeDeveloper Tools控制台中运行,它都无法工作: Output: Uncaught TypeEr

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

HTML:


最奇怪的是,在正常情况下,无论是在关闭聊天时在脚本中运行,还是聊天开始后在GoogleChromeDeveloper Tools控制台中运行,它都无法工作:

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

仅仅检查HTML wilth Chrome是如何突然导致它工作的。。。?如何在脚本中执行这种隐藏的魔法?

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

您的ID没有双引号,在该上下文中使用的jQuery不关心元素何时被创建。很难知道您何时运行jQuery代码,并且在运行该代码时您没有提供任何上下文。如果您可以创建一个小示例来说明您的问题(我知道,这可能很难,但您可以硬编码一些事情),这对于获得非常好的响应非常有用。在控制台中运行它非常有效,因为您是在将动态元素添加到DOM后运行jQuery的。你什么时候调用jQuery的那一行?最好在代码段上查看代码块。我认为错误发生在“split”而不是“attr”这一事实表明第一个子项已成功找到并返回,但attr('id')返回未定义。你试过用prop('id')来代替吗?嗯,这只是一个猜测。我认为它与
inspect元素
无关,而是与触发添加子元素的右键单击事件有关。但这只是瞎猜
$(".customer_inner_widget").children().first().attr("id").split("-")[2]
Output:
    Uncaught TypeError: Cannot read property 'split' of undefined
        at <anonymous>:1:58
Output:
    "5748220"