这里不使用创建文本节点而直接使用i.innerHTML="javascript";为什么不行?。。
可以用innerHTML 设置的啊,设置完了,再替换。代码:
<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
</head>
<body>
<div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div>
<a href="javascript:replaceMessage()"> 将加粗改为斜体</a>
<script type="text/javascript">
    function replaceMessage(){
        var newnode = document.createElement("i");
        var oldnode = document.getElementById("oldnode");
        newnode.innerHTML=oldnode.innerHTML;
        oldnode.parentNode.replaceChild(newnode,oldnode);
    }
</script>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
    <div id="div">
        <b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。
    </div>
    <a href="javascript:replaceMessage()"> 将加粗改为斜体</a>
    <script type="text/javascript">
      function replaceMessage(){
          var newnode = document.createElement("i");
          var div = document.getElementById('div');
          newnode.innerHTML = "javascript";
          div.appendChild(newnode);
       }    
    </script>
 </body>
</html>i.innerHTML="javascript"; 这样肯定不行了。这这是创建一个标签为i的元素,可是这个元素你都没有加到页面中。它怎么能渲染出来!