出于某种原因,下面的代码不起作用。我需要它为一个对象分配一个ID。我在下面做错了什么?
var frame = document.getElementsByTagName("iframe").setAttribute("id","iframe");
我安装了一个jQuery库,如果它应该有用。
答案 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>