-1

我这里有问题,或者更像是困惑。所以我知道通过 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>
4

2 回答 2

2

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

完全相同的:

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

或者

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

或者

.setAttribute("width", 700);

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

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

[...]

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

如果您查看DOM API 规范,您可以看到它setAttribute被定义为接受一个DOMString作为参数。JavaScript 实现将相应地转换您传递给此方法的任何值。

于 2013-10-13T08:33:12.163 回答
1

完全相同的方式。虽然,在你的第二个例子中,你没有id正确设置。

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

通过该更改,您的代码可以正常工作:http: //jsfiddle.net/FECq3/

于 2013-10-13T08:23:24.657 回答