为什么在此代码中按push
时创建的文本框与已显示的文本框不完全相同?
<html>
<body id="bd">
<input type="text" style="width: 30px; padding: 2px; border: 1px solid black"/>
<input type="submit" value="Push" onclick="test()"/>
<script type="text/javascript">
function test() {
var txt = document.createElement('input');
txt.type = 'text';
txt.style = "width: 30px; padding: 2px; border: 1px solid black";
document.getElementById('bd').appendChild(txt);
}
</script>
</body>
</html>
更新
我在@Bergi的小提琴中看到了什么:
答案 0 :(得分:6)
style
属性不是字符串。它是一个对象,其中每个CSS属性都表示为DOM属性。
它还有the cssText
property,其中包含所有规则。
txt.style.cssText = "width: 30px; padding: 2px; border: 1px solid black";
答案 1 :(得分:1)
对于以编程方式创建的文本框,您设置的是txt.type = 'input';
,但在原始设置中type="text"
。将txt.type = 'input';
更改为txt.type = 'text';
。
如果您想在一个字符串中设置style
,请使用txt.style.cssText =
。
答案 2 :(得分:1)
txt.style.width ="30px";
txt.style.padding ="2px";
tet.style.border ="1px";
最好通过className属性动态操作类,因为所有样式挂钩的最终外观都可以在单个样式表中控制。一个人的JavaScript代码也变得更加清晰,因为它不是专注于样式细节(MDN)
cssText返回样式规则的实际文本。能够动态设置样式表规则
txt.cssText = style here;