为什么我不能通过ID(无iframes)访问这个动态加载的DOM元素?

 jack1881的天空_925 发布于 2023-02-12 15:32

我正在使用允许嵌入式JavaScript内容(Qualtrics)的外部站点.Qualtrics动态加载一些控制器.当我通过Chrome网络面板测试访问这些控制器时,在完全加载后,我可以在Elements窗口中看到加载的控制器,它代表当前的DOM.但是,我无法通过id访问这些元素,无论是使用jQuery还是通过document.getElementById.

其中一个控制器具有id QID12~14~handle.在Elements DOM浏览器中,我看到了标签:

当我查看页面的源代码时,我看到它们是动态加载的,并通过脚本标记插入到页面中:

该页面未使用iFrame.如果我在当前DOM中看到一个id,为什么我不能通过它的id访问它,因为它当前存在于DOM中?

如果我打电话jQuery(".handle"),我会看到这个元素:

[
  
?
?,
?
?,
?
? ]

有什么可以阻止我通过id访问这些元素?

1 个回答
  • QID12~14~handle不是有效的选择器(尽管它是一个有效的id属性),因为~它是兄弟选择器.你可以使用id属性本身解决这个问题:

    [id='QID12~14~handle']
    

    或者你可以使用反斜杠转义选择器(这也适用于querySelector):

    QID12\\~14\\~handle
    

    您可能还需要#根据您使用的API指示ID选择器.

    2023-02-12 15:36 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有