我在这里遇到问题,或者更像是困惑。所以我知道通过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>
答案 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/