繁体   English   中英

为什么使用JavaScript创建文本框时显示的内容不同?

[英]Why is the textbox displayed differently when created by javascript?

为什么在此代码中,当我按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的小提琴中看到的是:

在此处输入图片说明

style属性不是字符串。 它是一个对象,其中每个CSS属性都表示为DOM属性。

它还具有cssText属性 ,其中包括所有规则。

txt.style.cssText = "width: 30px; padding: 2px; border: 1px solid black";

对于以编程方式创建的文本框,您要设置txt.type = 'input'; ,但在原始版本中,您设置type="text" 更改txt.type = 'input'; txt.type = 'text';

如果要在一个字符串中设置style ,请使用txt.style.cssText =

 txt.style.width ="30px";
 txt.style.padding ="2px";
 tet.style.border ="1px"; 

最好的做法是通过className属性动态操作类,因为所有样式钩子的最终外观都可以在一个样式表中控制。 一个人的JavaScript代码也变得更加简洁,因为它不再致力于样式细节(MDN)

cssText返回样式规则的实际文本。 为了能够动态设置样式表规则

 txt.cssText = style here;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM