7.动态创建DOM

8.innerText  innerHTML  value

7+8 练习:案例:点击按钮动态增加网站列表,分两列,第一列为网站的名字,第二列为带网站超链接的网站名。增加三行常见网站。浏览器兼容性问题,见备注。动态产生的元素,查看源代码是看不到的。通过DebugBar→Dom→文档→HTML可以看到。

练习1:练习:动态生成n个文本框 (每3个一行)

练习2:无刷新评论。

7.动态创建DOM


document.write只能在页面加载过程中才能动态创建。
可以调用document的createElement方法来创建具有指定标签的DOM对象,然后通过调用某个元素的appendChild();方法将新创建元素添加到相应的元素下。//父元素对象.removeChild(子元素对象);删除元素。

function showIt() {
var divMain = document.getElementById("divMain");
var btn = document.createElement("input");
btn.type = "button";
btn.value = "我是动态的!";
divMain.appendChild(btn);
}
<div id="divMain"></div>
<input type="button" value="ok" onclick="showit()" />

 

8.innerText  innerHTML  value


value 获取表单元素的值

几乎所有DOM元素都有innerText、innerHTML属性(注意大小写),分别是元素标签内内容的文本表示形式和HTML源代码,这两个属性是可读可写的。//FF不支持innerText,在FF下用textContent属性。也可以用innerHTML设置普通文本。

示例:代码见备注1。(innerText与innerHTML区别。)

隐藏行号 复制代码 ? 这是一段程序代码。
  • <!DOCTYPE html>
  • <html xmlns="http://www.w3.org/1999/xhtml">
  • <head>
  •     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  •     <title></title>
  •     <script type="text/javascript">
  •         function f1() {
  •             var div = document.getElementById("d1");
  •             var div2 = document.getElementById("d2");
  •             //innerText会对尖括号进行转义
  •             div.innerText = "<b>欢迎</b>光临<font color='red'>唐三三</font>部落";
  •             div2.innerHTML = "<b>欢迎</b>光临<font color='red'>唐三三</font>部落";
  •         };
  •         function f2() {
  •             var div2 = document.getElementById("d3");
  •             //移除html标签  
  •             alert(div2.innerText);
  •         };
  •         
  •         function f3() {
  •             var div2 = document.getElementById("d3");
  •             //移除html标签  
  •             alert(div2.innerHTML);
  •         };
  •     </script>
  • </head>
  • <body>
  •     <div id="d1">1234567890<input type="text" /></div>
  •     <div id="d2">1234567890<input type="text" /></div>
  •     <input id="btn" type="button" value="点击" onclick="f1()" />
  •     <div id="d3"><b>欢迎</b>光临<font color='red'>唐三三</font>部落</div>
  •     <input id="btn_2" type="button" value="弹窗innerText" onclick="f2()" />
  •     <input id="btn_3" type="button" value="弹窗innerHTML" onclick="f3()" />
  • </body>
  • </html>
  • 用innerHTML也可以替代createElement,属于简单、粗放型、后果自负的创建。

    示例:

    function createlink() {
    var divMain = document.getElementById("divMain");
                divMain.innerHTML = "<a href='http://www.cnblogs.com/tangge/p/3172689.html'>7.动态创建DOM + 8.innerText innerHTML value - 【唐】三三 - 博客园</a>";
            }

     

    7+8 练习:


    案例:点击按钮动态增加网站列表,分两列,第一列为网站的名字,第二列为带网站超链接的网站名。增加三行常见网站。浏览器兼容性问题,见备注。动态产生的元素,查看源代码是看不到的。通过DebugBar→Dom→文档→HTML可以看到。

    隐藏行号 复制代码 ? 这是一段程序代码。
  • <!DOCTYPE html>
  • <html xmlns="http://www.w3.org/1999/xhtml">
  • <head>
  •     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  •     <title></title>
  •     <script type="text/javascript">
  •         window.onload = function () {
  •             var json = [
  •                 { "name": "cnblog", "site": "http://www.cnblogs.com" },
  •                 { "name": "cnbeat", "site": "http://www.cnbeat.com" },
  •                 { "name": "qiushibaike", "site": "http://www.qiushibaike.com" }
  •             ];
  •             var div = document.getElementById("d1");
  •             //动态创建table
  •             var table = document.createElement("table");
  •             //把table添加到div
  •             div.appendChild(table);
  •             table.border = 1;
  •             table.width = "350px";
  •             for (var i = 0; i < json.length; i++) {
  •                 var site = json[i];
  •                 //创建tr
  •                 var tr = document.createElement("tr");
  •                 table.appendChild(tr);
  •                 //创建第1列td
  •                 var td = document.createElement("td");
  •                 td.innerHTML = site.name;
  •                 tr.appendChild(td);
  •                 //相当于new一个td(第2列)
  •                 td = document.createElement("td");
  •                 td.innerHTML = site.site;
  •                 tr.appendChild(td);
  •             }
  •         }
  •     </script>
  • </head>
  • <body>
  •     <div id="d1"></div>
  • </body>
  • </html>


  • 练习1:练习:动态生成n个文本框 (每3个一行)

    隐藏行号 复制代码 ? 这是一段程序代码。
  • <!DOCTYPE html>
  • <html xmlns="http://www.w3.org/1999/xhtml">
  • <head>
  •     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  •     <title></title>
  •     <script type="text/javascript">
  •         function create() {
  •             var number = document.getElementById("text").value;
  •             var div = document.getElementById("div1");
  •             div.innerHTML = "";
  •             //循环从1开始(方便下面余3取0)
  •             for (var i = 1; i <= parseInt(number) ; i++) {
  •                 //创建第1列td
  •                 //创建input type="text"
  •                 var input = document.createElement("input");
  •                 input.type = "text";
  •                 input.value = "text" + i;
  •                 input.length = "30px";
  •                 div.appendChild(input);
  •                 //每3个空一行
  •                 if (i % 3 == 0) {
  •                     var br = document.createElement("br");
  •                     div.appendChild(br);
  •                 }
  •             }
  •         }
  •     </script>
  • </head>
  • <body>
  •     <div id="div">
  •         人数:<input id="text" type="text" value="1" />
  •         <input type="button" value="生成" onclick="create()" />
  •     </div>
  •     <div id="div1"></div>
  • </body>
  • </html>

  • 练习2:无刷新评论。

    <table>

        <tr><td>猫猫:</td><td>沙发耶!</td></tr>

    </table>

    昵称:<input type="text" /><br />

    <textarea id=“txt”></textarea><br />

    <input type="button" value="评论" />

    隐藏行号 复制代码 ? 这是一段程序代码。
  • <!DOCTYPE html>
  • <html xmlns="http://www.w3.org/1999/xhtml">
  • <head>
  •     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  •     <title></title>
  •     <script type="text/javascript">
  •         function note() {
  •             var name = document.getElementById("txtname").value;
  •             var content = document.getElementById("txt").value;
  •             
  •             var row = document.createElement("tr");
  •             var tb = document.getElementById("tb");
  •             tb.appendChild(row);
  •             var td = document.createElement("td");
  •             row.appendChild(td);
  •             td.innerHTML = name;
  •             
  •             td = document.createElement("td");
  •             row.appendChild(td);
  •             td.innerHTML = content;
  •             
  •             
  •         }
  •     </script>
  • </head>
  • <body>
  •     <table id="tb">
  •         <tr>
  •             <td >猫猫:</td>
  •             <td>沙发耶!</td>
  •         </tr>
  •     </table>
  •     昵称:<input id="txtname" type="text" /><br />
  •     <textarea id="txt"></textarea><br />
  •     <input type="button" value="评论" onclick="note()" />
  • </body>
  • </html>
  • DOM – 7.动态创建DOM + 8.innerText innerHTML value的更多相关文章

    1. JavaScript DOM编程基础精华02(window对象的属性,事件中的this,动态创建DOM,innerText和innerHTML)

      window对象的属性1 window.location对象: window.location.href=‘’;//重新导航到新页面,可以取值,也可以赋值. window.location.reloa ...

    2. JS,Jquery,ExtJs不同脚本动态创建DOM对象

      好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...

    3. jQuery – 7.动态创建Dom、删除节点

      动态创建Dom节点     1.使用$(html字符串)来创建Dom节点     2.append方法用来在元素的末尾追加元素     案例:动态生成网站列表     3.prepend,在元素的开始 ...

    4. 动态创建dom元素

      效果图如上所示: 思维nav:就相当于qq空间发表动态(说说),在输入框里输入内容,点击提交(发表),内容就呈现在下面的动态栏里.我这里是准备写一个招聘的app,大家可以随便想象下哪些情况会遇到动态创 ...

    5. JS、JQuery和ExtJs动态创建DOM对象

      做了个简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主要是使用JavaScript.JQuery.ExtJs动态创建Table对象.动态Table数据填充.多选控制. ...

    6. Vue.js源码解析-Vue初始化流程之动态创建DOM

      目录 前言 一._update 如何判断是初始化还是更新操作? 二.patch 2.1 patch 定义 2.2 初始化的 patch 三.createElm 动态创建DOM 3.1 创建组件节点 3 ...

    7. DOM操作-动态创建网页元素

      动态创建新的DOM元素,是JavaScript操作网页对象模型的重要手段之一 代码: <!DOCTYPE html> <html> <head> <title ...

    8. js学习-DOM之动态创建元素的三种方式、插入元素、onkeydown与onkeyup两个事件整理

      动态创建元素的三种方式: 第一种: Document.write(); <body> <input type="button" id="btn" ...

    9. jQuery动态创建DOM节点

      var SKU=$("#SKU"); // 通过ID查找到指定表格 var oTable=SKU[0]; // 获取第一个表格 // 获取正文tbody元素 var tBodies ...

    随机推荐

    1. xcode免证书开发

      工程和target的code sign 选择 ios developer 工程的team选择为none就ok 推送测试 或者 正式发布的时候要改回来, 有一个严重的缺陷, 就是打包出来的ipa程序有时 ...

    2. 迷之this?(转)

      1. 迷之this 对于刚开始进行 JavaScript 编程的开发者来说,this 具有强大的魔力,它像谜团一样需要工程师们花大量的精力去真正理解它. 在后端的一些编程语言中,例如 Java.PHP ...

    3. Codeforces Gym 101138 G. LCM-er

      Description 在 \([a,b]\) 之间选择 \(n\) 个数 (可以重复) ,使这 \(n\) 个数的最小公倍数能被 \(x\) 整除,对 \(10^9+7\) 取膜. \(1\leqs ...

    4. C# 基于json通讯中的中文的处理

      如果通讯中产生了\\u4e00-\\u9fa5范围的中文的unicode代码,而不是\u4e00-\u9fa5范围的,那么c#的处理就比较麻烦了. 破解方法: 机制 它会把\\u4e00拆成部分来识别 ...

    5. 用Kibana和logstash快速搭建实时日志查询、收集与分析系统

      Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志. kibana ...

    6. poj 1094(拓扑排序)

      http://poj.org/problem?id=1094 题意:给你m个字母,有n个判断语句.求在哪个语句就可以判断出这个是不是一个环,或者在哪个语句可以判断出这些字母的排序规则,或者就是不能确定 ...

    7. poj 2251

      http://poj.org/problem?id=2251 一道简单的BFS,只不过是二维数组,变三维数组,也就在原来基础上加了两个方向. 题意就是从S走到E,#不能走. #include < ...

    8. POJ 1258

      http://poj.org/problem?id=1258 今天晚上随便找了两道题,没想到两道都是我第一次碰到的类型———最小生成树.我以前并没有见过,也不知道怎么做,然后就看书,思路很容易理解 但 ...

    9. wxPython:事件

      事件──── 是每个 GUI 应用不可舍割的一部分,因为所有的 GUI 应用程序都是基于事件驱动的.从 GUI 程序启动开始,它就回应同户的不同类型的事件.除了用户,也有其它因素可以产生事件,例如:互 ...

    10. spring + myBatis 常见错误:SQL语法错误

      在程序运行时,有时候会出现如下错误: 这个错误通常是你的sqlmapper.xml中sql语句语法有错误.所以请仔细查看你sql语句是否正确,比如{#id}这样写就会报上述错误,其实应该#{id}这样 ...