Javascript document.createElement:el.size=";“2%”;不起作用

Javascript document.createElement:el.size=";“2%”;不起作用,javascript,dom,createelement,Javascript,Dom,Createelement,我正在使用以下命令: el = doc.createElement("input"); el.size = "2%"; 我收到错误消息(在Firebug中):索引或大小为负数或大于允许的数量 当我只是注入HTML而不是正确构建DOM时,它工作正常,如下所示: $rsc.html("<input name = 'myName' type = 'text' value = '" + myVariable + "' size = '2%' />"); $rsc.html(“”); 为

我正在使用以下命令:

el = doc.createElement("input");
el.size = "2%";
我收到错误消息(在Firebug中):
索引或大小为负数或大于允许的数量

当我只是注入HTML而不是正确构建DOM时,它工作正常,如下所示:

$rsc.html("<input name = 'myName' type = 'text' value = '" + myVariable + "' size = '2%' />");
$rsc.html(“”);
为什么它不接受createElement的
2%


感谢
size
属性的单位是字符(纯整数),不允许使用
size
的任何其他单位。 如果您想使用宽度为2%的
输入
,则需要通过
样式

el.style.width='2%';

size
属性的单位为字符(纯整数),不允许使用任何其他具有
size
的单位。 如果您想使用宽度为2%的
输入
,则需要通过
样式

el.style.width='2%';

size
属性只接受整数,不接受百分比。它表示允许在输入中键入的最大字符数。 如果将其放入HTML中,可能会忽略%并将该值解析为2


如果需要调整输入的宽度,则可以使用
style='width:2%
属性
size
只接受整数,而不接受百分比。它表示允许在输入中键入的最大字符数。 如果将其放入HTML中,可能会忽略%并将该值解析为2

如果需要调整输入的宽度,则可以在chrome中使用
style='width:2%'

观察

   > var a = document.createElement('input');
   > undefined
   > a.size
   > 20
   > typeof a.size
   > "number"
   > a.size = "10"
   > "10"
   > a.size
   > 10
   > a.size = "1x"
   > "1x"
   > a.size
   > 20
   > a.size = "1%"
   > "1%"
   > a.size
   > 20
在Firefox中

>>> var a = document.createElement('input');
undefined
>>> a.size
20
>>> typeof a.size
"number"
>>> a.size = 20
20
>>> a.size = "20"
"20"
>>> a.size = "2%"
Error: Index or size is negative or greater than the allowed amount
[Break On This Error]   
a.size = "2%"
我认为当firefox抛出错误时,chrome可以安全地忽略无效的整数值。

在chrome中观察

   > var a = document.createElement('input');
   > undefined
   > a.size
   > 20
   > typeof a.size
   > "number"
   > a.size = "10"
   > "10"
   > a.size
   > 10
   > a.size = "1x"
   > "1x"
   > a.size
   > 20
   > a.size = "1%"
   > "1%"
   > a.size
   > 20
在Firefox中

>>> var a = document.createElement('input');
undefined
>>> a.size
20
>>> typeof a.size
"number"
>>> a.size = 20
20
>>> a.size = "20"
"20"
>>> a.size = "2%"
Error: Index or size is negative or greater than the allowed amount
[Break On This Error]   
a.size = "2%"

我认为,当firefox抛出错误时,chrome可以安全地忽略无效的整数值。

感谢您提供了一个非常全面的答案。在Firebug中测试表明,
%
被忽略;将其更改为直线2没有任何区别(而将其更改为3和1则分别放大和缩小)。不客气。不幸的是,我们需要小心使用HTML,因为浏览器试图解析它能解析的任何内容,而我们没有收到任何警告。绝对没有。这是一个完美的例子:)谢谢你提供了一个非常全面的答案。在Firebug中测试表明,
%
被忽略;将其更改为直线2没有任何区别(而将其更改为3和1则分别放大和缩小)。不客气。不幸的是,我们需要小心使用HTML,因为浏览器试图解析它能解析的任何内容,而我们没有收到任何警告。绝对没有。这是一个完美的例子:)谢谢大家;你们都说对了:)谢谢大家;你们都在现场:)