使用JavaScript获取<div>标签内的<iframe>标签

4

在JavaScript中有没有一种方法可以做到以下几点:

  1. 通过类名获取一个div元素,
  2. 获取该div元素内部的iframe元素,
  3. 并添加一个属性(frameborder=0)。

<html>
    <body>
        <div class="calendar">
            <iframe></iframe>
        </div>
    </body>
</html>
2个回答

8

按类名获取div:

var allDivs = document.getElementsByClassName("calendar");

假设只有一个。
var calendarDiv = document.getElementsByClassName("calendar")[0];

获取内部的iFrame:

var iFrame = calendarDiv.getElementsByTagName("iframe")[0];

设置属性:

iFrame.setAttribute("frameborder", "0"); 

或者,由于旧版本的IE不支持getElementsByClassName,考虑将id设置在iFrame上,然后只需执行以下操作:
document.getElementById("iFrameId").setAttribute("frameborder", "0"); 

请注意,document.getElementsByClassName 不支持 ie8 及以下版本:http://caniuse.com/#search=getElementsByClassName - Andreas Köberle
注意:document.getElementsByClassname()在IE 9及以下版本中无法使用。请查看替代方案以及如何优雅地使用它们 - Ayman Safadi
@AymanSafadi - 谢谢您 - 我已经编辑通知了原帖作者。我讨厌IE。 - Adam Rackis

1
首先,您需要为您的iframe指定一个id。
之后,您可以使用函数document.getElementById("")获取您的iframe,然后更改它的属性。
例如:
<html>
<body>
    <div class="calendar">
        <iframe id="myIframe"></iframe>
    </div>
    <script type="text/javascript">
        document.getElementById("myIframe").frameborder = 1;
    </script>
</body>
</html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接