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

时间:2012-12-27 19:00:52

标签: javascript element tagname

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

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

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

3 个答案:

答案 0 :(得分:2)

假设您要定位第一个iframe:

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

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

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

答案 1 :(得分: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

答案 2 :(得分:0)

试试这个。

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