更改属性Javascript方式的值

时间:2013-10-13 08:17:03

标签: javascript html

我在这里遇到问题,或者更像是困惑。所以我知道通过javascript更改html属性的基础知识。例如:

<iframe id="iframe" src="http://www.stackoverflow.com/" width="610px">

因此,要更改id为“iframe”的元素的宽度属性为:

document.getElementById("iframe").setAttribute("width", "700px");

但是,当这样的方式出现时,如何通过javascript更改属性? (注意宽度属性之间的差异)

<iframe id="iframe" src="http://www.stackoverflow.com/" width=610>

2 个答案:

答案 0 :(得分:2)

  

但是,当这样的方式出现时,如何通过javascript更改属性?

完全一样:

.setAttribute("width", "700px");

.setAttribute("width", "700");

.setAttribute("width", 700);

请注意,无论如何,所有属性值都被视为字符串。 HTML语法只允许您在某些情况下省略引号,但这不会更改数据类型。来自HTML specification

  

默认情况下,SGML要求使用双引号(ASCII十进制34)或单引号(ASCII十进制39)分隔所有属性值。

     

[...]

     

在某些情况下,作者可以指定没有任何引号的属性值。属性值可能只包含字母(a-z和A-Z),数字(0-9),连字符(ASCII十进制45),句点(ASCII十进制46),下划线(ASCII十进制95)和冒号(ASCII十进制58)。我们建议使用引号,即使可以消除它们。

如果查看DOM API specification,您会发现setAttribute已定义为接受DOMString作为参数。 JavaScript实现会相应地转换您传递给此方法的任何值。

答案 1 :(得分:1)

完全相同的方式。虽然,在您的第二个示例中,您未正确设置id

<iframe id="iframe" src="http://www.stackoverflow.com/" width=610>
<--       ^ added equal sign here                              -->

通过此更改,您的代码可以正常运行:http://jsfiddle.net/FECq3/