让页面上的 jQuery 添加 CSS 类到 iframe 中的 div?

Posted

技术标签:

【中文标题】让页面上的 jQuery 添加 CSS 类到 iframe 中的 div?【英文标题】:Make jQuery on page add CSS class to div within iframe? 【发布时间】:2011-07-21 23:44:23 【问题描述】:

我可以在我的页面上使用 jQuery 将 CSS 类添加到 iframe 中的 div 吗?

谢谢

更新。出于测试目的,我添加了以下内容。我原以为它会为任何 iframe 中的所有 p 标签添加一个“红色”类,但它什么也没做:

$(document).ready(function() $('iframe') 。内容() .find('p') .addClass('red'); );

谢谢

【问题讨论】:

你能提供更多细节吗? @jackjoe:对我来说似乎很清楚他在寻找什么? 也许吧,但是 OP 并没有说它是否是跨域的,这会改变一切。 不,同一个域。谢谢 @jackjoe:好点,没有考虑过。 【参考方案1】:

如果它在同一个域上,你应该可以。

尝试使用这样的东西:

$('#iframe-id')
  .contents()
  .find('.my-div')
    .addClass('my-other-class');

【讨论】:

我的 iframe 没有 ID。我试过 iframe、iFrame 和框架,但似乎没有被选中。谢谢 正如您在本文其他地方提到的,您似乎可以通过另一个具有 Id 的元素来定位它,因此请尝试使用 $('#mydivid iframe') 而不是 $('#iframe-id')。如果您不尝试在外部网页上执行此操作,它应该起作用。 代码对我不起作用,我在一开始就在我的主要问题中发布了我的尝试。谢谢【参考方案2】:

您可以将 jquery 选择器定位在特定元素上。在这种情况下,您需要在当前页面的 frames 集合中定位 div 的 id / class 并执行操作。

见下文;

$('#mydiv', frames['myiframeid'].document).addClass('myclass');

【讨论】:

我的 iframe 没有 ID。如何在 div 中选择任何 iframe?的,我如何选择它里面的哪个 div 来添加一个类?谢谢 @jdln:为什么不能在 iframe 中添加一个 id='mydivid' 然后定位它? 你的意思是用jQuery添加还是实际添加到原始html中?我正在使用一个模块,因此找到执行此操作的代码会有点棘手。我确定这不是不可能的,但有没有另一种方法可以用 jQuery 选择它?如果我试图用 jQuery 选择一个没有 ID 的 div,那么还有其他方法可以做到这一点。谢谢 @jdln:将其添加到原始 HTML 中。如果您无法修改原始 HTML,并且您确定页面上只有 1 个 iframe,那么您始终可以使用 window.document.frames(0).document 来引用它。 有没有办法可以在某个 div 中引用 iframe?我可以保证它是 div 中唯一具有 id 的 iframe,所以我可以这样选择它吗?谢谢

以上是关于让页面上的 jQuery 添加 CSS 类到 iframe 中的 div?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 div 在页面中随机移动(使用 jQuery 或 CSS)

jQuery:更改加载了 ajax 的元素上的 CSS?

JQuery/CSS - 基于值的不同 <body> 背景图像,无需在 _Layout 页面上的 document.ready() 中加载

创建从一个类到另一个类的变量

jquery 怎么让一个div的内容未加载完时显示加载中...

有条件地添加到 jQuery .when