[英]Why doesn't the following Javascript code (to set CSS style) work?
[英]style css in javascript doesn't work
我正在尝试在javascript中创建类似小编辑器的内容,但我不明白为什么.style无法正常工作。
先谢谢您的帮助!
这是我的代码:
<html>
<head>
<title>Hello World!</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<div>
<textarea cols="30" rows="1" id="title1">write here the header</textarea><br /><br />
<textarea cols="30" rows="1" id="desc1">write here the paragraph</textarea>
<input type="button" value="show" onclick="doit()">
</div>
<script type="text/javascript">
function doit() {
var title = document.getElementById("title1").value;
var desc = document.getElementById("desc1").value;
document.write("<h1>"+title+"</h1>").style.color="blue";
document.write(desc);
}
</script>
</body>
</html>
不要使用document.write
,请参阅规范中的警告:
警告! 此方法具有非常特殊的行为。 在某些情况下,此方法可能会在运行解析器时影响HTML解析器的状态,从而导致DOM与文档源不对应(例如,如果写入的字符串是字符串“
<plaintext>
”或“<!--
“)。 在其他情况下,该调用可以首先清除当前页面,就像已调用document.open()
一样。 在更多情况下,该方法将被忽略或抛出异常。 更糟糕的是,在某些情况下,此方法的确切行为可能取决于网络延迟,这可能会导致很难调试的故障。 由于所有这些原因,强烈建议不要使用此方法。
改用DOM方法:
function doit() {
var title = document.getElementById("title1").value,
desc = document.getElementById("desc1").value,
h1 = document.createElement('h1');
h1.appendChild(document.createTextNode(title));
h1.style.color="blue";
document.body.appendChild(h1);
document.body.appendChild(document.createTextNode(desc));
}
尝试这个,
document.write("<h1 style='color:blue'>"+title+"</h1>");
<div id="container">
<textarea cols="30" rows="1" id="title1">write here the header</textarea><br /><br />
<textarea cols="30" rows="1" id="desc1">write here the paragraph</textarea>
<input type="button" value="show" onclick="doit();" />
<h1 id="header" style="color:blue;"></h1>
<p id="par"></p>
</div>
function doit() {
var title = document.getElementById("title1").value;
var desc = document.getElementById("desc1").value;
document.getElementById('header').innerHTML=title;
document.getElementById('par').innerHTML=desc;
}
<script type="text/javascript">
function doit() {
var title = document.getElementById("title1").value;
var desc = document.getElementById("desc1").value;
var newheader = document.createElement("h1");
newheader.innerHTML = "title";
newheader.style.color = "blue";
document.body.appendChild(newheader);
var newspan = document.createElement("span");
newspan.innerHTML = desc;
document.body.appendChild(newspan);
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.