使用javascript将ID分配给对象(仅一个)

使用javascript将ID分配给对象(仅一个),javascript,element,tagname,Javascript,Element,Tagname,由于某些原因,下面的代码不起作用。我需要它为一个对象分配一个ID。下面我做错了什么 var frame = document.getElementsByTagName("iframe").setAttribute("id","iframe"); 我安装了一个jQuery库,如果它有用的话 假设您的目标是找到的第一个iframe: var frame = document.getElementsByTagName("iframe")[0]; frame.setAttribute("id","

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

假设您的目标是找到的第一个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');
这会影响页面上的所有元素,因此最好只有一个。重复ID是一件严肃的事情。它们会破坏东西,你真的需要避免它们。您可以链入
.first()
或使用
iframe:first
选择器确保只针对第一个元素


以下是无jQuery的解决方案,也是第一个

var frame = document.getElementsByTagName("iframe")[0];
frame.id = 'iframe';
第1行:您实际上需要
frame
中的(第一个)
iframe
元素

第2行:ID可以作为属性使用,因此您可以使用
.ID
而不是
setAttribute

因为您使用的是jQuery,所以可以简化此操作:

$('iframe').attr('id', 'iframe'); // or:
$('iframe').prop('id', 'iframe');
这会影响页面上的所有元素,因此最好只有一个。重复ID是一件严肃的事情。它们会破坏东西,你真的需要避免它们。您可以链入
.first()
或使用
iframe:first
选择器确保只针对第一个元素


以下是无jQuery的解决方案,也是第一个

var frame = document.getElementsByTagName("iframe")[0];
frame.id = 'iframe';
第1行:您实际上需要
frame
中的(第一个)
iframe
元素
第2行:ID作为属性可用,因此您可以使用
.ID
而不是
setAttribute

尝试此操作

 <script>
var frame = document.getElementsByTagName("iframe")[0].id="iframe1";  
 alert(document.getElementById("iframe1").name);
 </script>

var frame=document.getElementsByTagName(“iframe”)[0].id=“iframe1”;
警报(document.getElementById(“iframe1”).name);
试试这个

 <script>
var frame = document.getElementsByTagName("iframe")[0].id="iframe1";  
 alert(document.getElementById("iframe1").name);
 </script>

var frame=document.getElementsByTagName(“iframe”)[0].id=“iframe1”;
警报(document.getElementById(“iframe1”).name);

getElementsByTagName()
返回节点列表()。它是一个类似数组的对象,包含对DOM对象的引用
getElementsByTagName()
返回节点列表()。它是一个类似数组的对象,包含对DOM对象的引用。谢谢我不知道它会返回一个数组,这解决了我的问题!谢谢我不知道它会返回一个数组,这解决了我的问题!