js/jquery获取不到页面元素 需要点击一下才能找到

本文介绍了解决在多层iframe嵌套情况下,通过JavaScript无法直接获取内层元素的问题。提供了一种通过切换到指定iframe的方法来实现元素的正确获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2018-03-23 更新
更新内容:检查在获取的时候是不是使用class获取元素,如果是则修改为通过id获取元素。通过id获取元素是可以直接获取到的

以下为原文 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
在项目中,尤其是后台管理常用到iframe嵌套,但是最近遇到一个问题。
我在页面上想要去获取页面的一个元素,却无法获取到元素
只能找到document,定位不到具体元素
但是使用chrome自带的调试台去选中元素,然后再执行jquery方法,此时可以正常获取到元素
已经可以获取到元素
一开始想到可能是未来元素的原因,尝试过后发现并没有用处。
后来想到在form表单提交的时候如果有两层form嵌套,就会出现提交不了的现象。那会不会iframe嵌套也会出现这个问题呢?
当只使用一层iframe层时,也是可以正常获取元素的。那么两层的时候为什么会不行了呢?
查阅资料得知,当我们去获取元素时,js会默认在外层iframe中寻找元素,如果我们要寻找里层iframe的元素,必须要切换到指定iframe层中。

var obj=document.getElementById("mainframe").contentWindow; //填你的需要找到元素的那一层iframe的id
obj.document.getElementsByClassName("odd_bg");//我们可以对元素进行正常的操作了,我这里是寻找的class名,同理可以使用id等获取
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值