使用jQuery来设置样式iFrame

ggu*_*erg 11 css iframe jquery

我在这里读了十几个类似的问题并尝试了我能想到的一切,但我显然做错了,因为我无法让它发挥作用.

HTML:

<iframe name="posts" id="posts" src="edit.php">
Run Code Online (Sandbox Code Playgroud)

JS:

$(document).ready(function() {
    $('iframe#posts').ready(function() {
        var frame = $('iframe#posts').contentDocument;
        console.log($('#adminmenu', frame));
        $('#adminmenu', frame).css('display', 'none !important');
    });
});
Run Code Online (Sandbox Code Playgroud)

控制台正在输出:

[<ul id=?"adminmenu" style=?"display:? none !important;? ">?…?</ul>?]
Run Code Online (Sandbox Code Playgroud)

这是正确的元素.但是,display:none它永远不会在浏览器中应用.此外,我发现奇怪的是控制台正在输出内联样式,即使它是在console.log()语句之后设置的(不确定是否相关,但似乎不应该).

有谁知道为什么这不起作用?

我还应该补充一点<ul id="adminmenu">,主文档中也有一个,但我想通过提供iframe上下文,它应该以iframe为目标.

小智 21

您是否尝试过使用jQuery的contents()功能而不是contentDocument

$("iframe#posts").contents().find("#adminmenu").hide();
Run Code Online (Sandbox Code Playgroud)

更新:改为.css("display", "none !important")简单.hide().