0

出于某种原因,下面的代码不起作用。我需要它为一个对象分配一个 ID。我在下面做错了什么?

  var frame = document.getElementsByTagName("iframe").setAttribute("id","iframe");

我安装了一个 jQuery 库,如果它应该有用的话。

4

3 回答 3

2

假设您的目标是找到的第一个 iframe:

var frame = document.getElementsByTagName("iframe")[0];
frame.setAttribute("id","iframe");

您需要[0]索引的原因是getElementsByTagName它将返回具有该标签名称的所有元素的集合,即使只有一个。

而且,正如 ThiefMaster 所说,您也可以使用frame.id = "iframe";代替setAttribute.

于 2012-12-27T19:02:24.157 回答
1

由于您使用的是 jQuery,因此您可以使这变得更简单:

$('iframe').attr('id', 'iframe'); // or:
$('iframe').prop('id', 'iframe');

这会影响页面上的所有 <iframe>元素,因此您最好只有一个。重复的 ID 是一件严肃的事情。他们打破了东西,你真的需要避免他们。您可以链接.first()或使用iframe:first选择器来确保您只定位第一个元素。


这是无 jQuery 的解决方案,也只是第一个<iframe>

var frame = document.getElementsByTagName("iframe")[0];
frame.id = 'iframe';

第 1 行:您实际上iframe想要frame.
第 2 行:ID 可作为属性使用,因此您可以.id使用setAttribute.

于 2012-12-27T19:05:02.800 回答
0

试试这个。

 <script>
var frame = document.getElementsByTagName("iframe")[0].id="iframe1";  
 alert(document.getElementById("iframe1").name);
 </script>
于 2012-12-27T19:06:50.363 回答