现在总结下原生Javascript中节点的操作,框架诚可贵,原生更久远啊。
在Javascript中新增一个dom元素的对象是 document.createElement("type");
创建了一个元素节点以后要把这个节点增加到html的dom中那么就要用到appendChild() 或 insertBefore()方法
下面举个例子
- <script type="text/javascript">
- var oTest = document.getElementById("test");
- var newNode = document.createElement("p");
- newNode.innerHTML = "This is a test";
-
-
- oTest.appendChild(newNode);
-
- oTest.insertBefore(newNode,null);
- </script>
那么我下面给出一个全面的例子,基本上不用唠叨什么,我们在给指定的位置(id)的节点中增加一个完整的form表单
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Javascript之节点操作</title>
- <style>
- #container {margin-left: auto; margin-right: auto; width:960px;}
- </style>
- <script type="text/javascript">
- function addNewForm(node_id){
- e = document.getElementById(node_id);
- e_form = document.createElement("form");
-
-
-
- e_form.method = "post";
- e_form.action = "http://localhost/test/index.php";
- e_form.name = "apply_form";
- e_form.enctype = "multipart/form-data";
-
-
- e_intput_text = document.createElement("input");
- e_intput_text.type = "text";
- e_intput_text.name = "apply_input_text";
- e_intput_text.id = "apply_input_text";
- e_intput_text.value = "dafault";
-
- e_input_select = document.createElement("select");
- e_input_select.options[0] = new Option("OptionOneName", "OptionOneValue");
- e_input_select.options[1] = new Option("OptionTwoName", "OptionTwoValue");
- e_input_select.options[2] = new Option("OptionThreeName", "OptionThreeValue");
- e_input_select.options[3] = new Option("OptionFourName", "OptionFourValue");
-
- e_intput_password = document.createElement("input");
- e_intput_password.type = "password";
- e_intput_password.name = "apply_input_password";
- e_intput_password.id = "apply_input_password";
- e_intput_password.value = "can_you_guess";
-
- e_intput_button = document.createElement("input");
- e_intput_button.type = "button";
- e_intput_button.name = "apply_input_button";
- e_intput_button.id = "apply_input_button";
- e_intput_button.value = "按钮";
- e_intput_button.onclick = "javascript:alert('This is a test!');";
-
- e_intput_submit = document.createElement("input");
- e_intput_submit.type = "submit";
- e_intput_submit.name = "apply_input_submit";
- e_intput_submit.value = "提交";
-
-
-
-
-
- e_form.appendChild(e_intput_text);
- e_form.appendChild(e_input_select);
- e_form.appendChild(e_intput_password);
- e_form.appendChild(e_intput_button);
- e_form.appendChild(e_intput_submit);
-
-
-
-
- e.appendChild(e_form);
- }
- </script>
- </head>
- <body>
- <div id="container">
- <div id="testarea">
- <div id="excutearea"></div>
- <div onclick="addNewForm('addArea')">在指定元素的内部增加一个完整的表单</div>
- </div>
- <br/>
- <div id="addArea">
- <div>指定区域</div>
- </div>
- </div>
- </body>
- </html>
基本上的用法在里面都有,下面来从网上摘抄了例子解释下insertBefore()
- <script type="text/javascript">
-
- var oTest = document.getElementById("test");
- var refChild = document.getElementById("x1");
- var newNode = document.createElement("p");
- newNode.innerHTML = "This is a test";
- oTest.insertBefore(newNode,refChild);
-
-
-
- var oTest = document.getElementById("test");
- var refChild = document.getElementById("x1");
- var newNode = document.createElement("p");
- newNode.innerHTML = "This is a test";
- oTest.insertBefore(newNode,refChild.nextSibling);
-
-
- var oTest = document.getElementById("test");
- var newNode = document.createElement("p");
- newNode.innerHTML = "This is a test";
- oTest.insertBefore(newNode,oTest.childNodes[0]);
- </script>
基本上的操作就这些
参考:http://www.cnblogs.com/penny/archive/2008/09/01/1281293.html
本文转自kefirking 51CTO博客,原文链接:http://blog.51cto.com/phpzf/782159,如需转载请自行联系原作者