本章内容: ·动态创建html的‘老’技巧:document.write(),innnerHTML ·DOM方法,createElement(),createTextNode(), appendChild(),insertBefore()等方法。 |
1,document.write方法 简单而言,在.html文件中写入以下的内容,这是虽然.html文件中没有任何的文字内容,但是显示出来的网页中会出现“This is inserted”。 <script type="text/javascript"> document.write("<p>This is inserted"</p>); </script> 但是这样做则违背了分离js的原则。 创建example.js,然后再引用它。 function insertParagraph(text){ var str="</p>" str+=text+"</p>" document.write(str); } 然而想上面这样将html和js混杂在一起是一种很不好的做法。另外在html中编写js脚本很容易导致错误,<script>后面的<p>很容易被误认为是<p>标签而在<script>中打开<p>标签是非法的。 SUMMARY: 应该尽力少使用document.write方法。 2,innerHTML属性 <div id="testDiv"> <p>This is <em>my</em> content.</p> </div> 使用js检查div元素的innerHTML属性;
由此可以使用innerHTML更改文档的结构:
1,适合大刀阔斧的改变文档的内容。但是不提供DOM方法的精确性。 2,innerHTMl只适用于html文档,不适合XHTML文档,及MIME类型使用application/xhtml+xml的xhtml文档。 3,innerhtml是一项专利技术。编写js时应该避免任何形式的专利这样才不至于陷入到浏览器之争中。 4,任何时候标准DOM都是可以替代INNERHTML的。而且提供更高的精确性和更多的功能。 |
![撤销](http://blog.chinaunix.net/u2/63463/images/blank.gif)
7.3,DOM提供的方法 createElement方法,nodeName,nodeType属性 用于创建元素节点。 window.οnlοad=function(){ var para=document.createElement("p"); var info="nodename: "; info+=para.nodeName; info+=" nodetype: "; info+=para.nodeType; alert(info); } 略作处理浏览器窗口将弹出对话框显示有关新创建节点的信息。不过现在P元素节点只是一个孤儿; appendChild方法 将游荡的元素p添加到id为testdiv的元素上 var parent=document.getElementById("testdiv"); parent.appendChild(para); 这时html文档中还不会有什么显示,因为P元素并没有节点内容。 createTextNode方法 var txt=document.createTextNode("hello world"); para.appendChild(txt); 这时文档会显示“hello world”字符串。
|