出于某种原因,下面的代码不起作用。我需要它为一个对象分配一个 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>