增加和删除节点,HTML DOM常用对象-03

16-0909-pm day 03

  1. 添加和删除:
  2. ***HTML DOM常用对象:
    Image Select Table Form Option

1. 添加和删除:

1.1添加: 3步:

  1. 创建空元素对象:
    var a=document.createElement("a");

相当于: <a></a>

  1. 设置元素的关键属性:
a.href="http://tmooc.cn"
a.innerHTML="go to tmooc";
  1. 将元素挂到指定父元素下:
末尾追加: parent.appendChild(a); //此方法用的最多
插入: parent.insertBefore(a,old);
替换: parent.replaceChild(a,old);

***优化: 尽量少的操作DOM树:
html->DOM Tree

Render Tree->layout->paint

css->cssRules
如何:

  1. 如果同时添加父元素和子元素,要在内存中先将所以子元素添加到父元素下,将父元素一次性加入DOM树
  2. 如果同时添加多个平级子元素,要先将平级子元素加入文档片段,再将文档片段整体加到页面。

练习: select元素: onchange事件: 选中项发生改变时触发
selectedIndex属性: 当前选中项的下标

文档片段: 内存中临时存储多个平级子元素的虚拟父元素
何时: 添加多个平级元素时,都要先将子元素追加到文档片段中缓存,再将文档片段一次性添加到页面的父元素下
如何: 3步:

  1. 创建文档片段: var frag=document.createDocumentFragment();
  2. 将平级子元素,先追加到frag下: 用法同普通父元素
  3. 将文档片段,整体添加到页面

1.2 删除节点:

parent.removeChild(child);
child.parentNode.removeChild(child);

2. HTML DOM常用对象:

2.1 Image: <img />

创建: var img=new Image();

2.2 Select: <select>

属性:

selectedIndex: 当前选中项的下标
options: 获得select下所有option元素的集合

Option:<option>
创建: var opt=new Option(text,value);
相当于: var opt= document.createElement("option");
opt.innerHTML=text;
opt.value=value;
属性: index、text、value、selected

value: 如果选中项有value,则select的value等于选中项的value,如果选中项没有value,则select的value等于选中项的内容

方法:

add(option): 向select下追加一个option对象 appendChild(option)
remove(i): 移除select下i位置的option

事件: onchange: 当选中项发生改变时触发


day04

2.3 Table

tHead:

      var thead=table.createThead();
      table.deleteThead();
      rows: 
          var tr=thead.insertRow(i);
                //省略i,表示末尾追加
          thead.deleteRow(i);
                //i不能省略
          cells: 
            var td=tr.insertCell(i);
                //省略i,表示末尾追加
            tr.deleteCell(i)

tBodies
tBody:

      var tbody=table.createTBody();
      //没有table.deleteTBody!

tFoot:

 同tHead

Table.rows:
table.insertRow(i);
table.deleteRow(i);

row.rowIndex: 标识row在整个表中的下标位置
table.deleteRow(row.rowIndex)

强调: 所有creatxxx/insertxxx方法都会自动将新元素添加到父元素下,不需要appendChild

练习: 确认框: confirm 两个按钮
点确认,就返回true,否则返回false

2.4Form

获取: var form=document.forms[i/id/name];
属性:
length: 表单中,表单元素的个数
elements[i/id/name]
获得表单中的元素:
form.name => form.elements["name"]
方法: submit(); 手动提交表单
事件:

每个表单元素都有两个方法:
elem.focus(); //让elem获得焦点
elem.blur(); //让elem失去焦点

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容