出于某种原因,下面的代码不起作用。我需要它为一个对象分配一个 ID。我在下面做错了什么?
var frame = document.getElementsByTagName("iframe").setAttribute("id","iframe");
我安装了一个 jQuery 库,如果它应该有用的话。
出于某种原因,下面的代码不起作用。我需要它为一个对象分配一个 ID。我在下面做错了什么?
var frame = document.getElementsByTagName("iframe").setAttribute("id","iframe");
我安装了一个 jQuery 库,如果它应该有用的话。
假设您的目标是找到的第一个 iframe:
var frame = document.getElementsByTagName("iframe")[0];
frame.setAttribute("id","iframe");
您需要[0]
索引的原因是getElementsByTagName
它将返回具有该标签名称的所有元素的集合,即使只有一个。
而且,正如 ThiefMaster 所说,您也可以使用frame.id = "iframe";
代替setAttribute
.
由于您使用的是 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
.
试试这个。
<script>
var frame = document.getElementsByTagName("iframe")[0].id="iframe1";
alert(document.getElementById("iframe1").name);
</script>