Jquery 如何在div中的第二个FB标记内选择第一个IFRAME?

Jquery 如何在div中的第二个FB标记内选择第一个IFRAME?,jquery,css,jquery-selectors,css-selectors,Jquery,Css,Jquery Selectors,Css Selectors,这需要跨浏览器兼容,至少与IE7/8和其他主要的当前浏览器兼容 我有以下(简化的)HTML: IFRAME是由Facebook添加的,但我需要对其进行显示修改。如何使用CSS选择器选择“ID为facebook的div下第二个FB标记中的第一个IFRAME”?我需要向IFRAME添加height和overflow CSS属性 如果CSS不能以跨浏览器兼容的方式实现这一点,那么合适的jQuery选择器是什么?如果有人想回答这两种情况,那么这两种方法都可能会有所帮助,但我更喜欢CSS 谢谢。我不确

这需要跨浏览器兼容,至少与IE7/8和其他主要的当前浏览器兼容

我有以下(简化的)HTML:


IFRAME是由Facebook添加的,但我需要对其进行显示修改。如何使用CSS选择器选择“ID为facebook的div下第二个FB标记中的第一个IFRAME”?我需要向IFRAME添加height和overflow CSS属性

如果CSS不能以跨浏览器兼容的方式实现这一点,那么合适的jQuery选择器是什么?如果有人想回答这两种情况,那么这两种方法都可能会有所帮助,但我更喜欢CSS


谢谢。

我不确定是否可以使用CSS,即使可以,它也不会与IE7兼容

使用jquery:

var iframe = $("#facebook").children().eq(2).find("iframe").first();
iframe.css({overflow: [...], height: [...]});

这些不是
fb
元素,它们是
like
comment
元素,位于
fb
XML名称空间中

W3C实现这一切的方法是在样式表中声明名称空间,并使用特殊的选择器语法,如图所示。但正如您所料,IE不知道我在说什么,因此作为替代方案,您可以将名称空间视为元素名称的一部分,从而产生
fb:like
fb:comment
。由于
是CSS选择器(伪类和伪元素)中的一个特殊字符,因此您只需使用反斜杠将其转义,以使其能够被逐字显示

此CSS选择器应适用于IE7+和其他浏览器:

#facebook fb\:comments iframe:first-child {
    /* Styles */
}
jQuery目前没有在其选择器引擎中实现名称空间,因此如果需要将该选择器用于脚本编写,可以将其直接放入

#facebook fb\:comments iframe:first-child {
    /* Styles */
}