我今天学习了佟老师讲的JavaScript解析Dom文档的知识:
一、 节点分为3种类型,元素节点,属性节点,文本节点
二、 查找节点:
l js代码不能写在body元素的前面,js 代码写在 <head> 节点中, <title> 节点后, 此时需要用到 js 的 window.onload 函数 -- 该函数在整个文档都加载完成之后执行.
l 节点的属性: nodeName: nodue: nodeType:
l 查找元素节点,document.getElementById("bj");
l 查找属性节点:: cityElement.getAttributeNode("bj")
l 查找文本节点: 文本节点一定是某个元素节点的子节点! 先得到元素节点 , 一般情况下: 文本节点都是元素节点的唯一的子节点, 所以可以通过元素节点的的 lastChild(或 firstChild) 来获取
三、 需求:点击<li>节点,弹出对应的文本内容,
l 使用document.getElementsByTagName("li");获取所有的li节点,再添加click事件,
四、 子节点:
l 获取所有的子节点:childNodes( ) ,,火狐和IE计算的子节点数不一样,火狐将文本节点和空白节点也计算在内,而IE不包含空白的文本节点,
l 判断元素是否有子节点:haschildNode();
l 需求:点击li节点,节点的内容自动放在输入框里面,
l 需求:点击li时,li的文本变为“^^北京”,再点击时,又变回来。 方法一:使用substr();
l 方法二:使用正则表达式,
五、 创建节点:
l 创建元素节点:
i. 把新创建的li节点放到city节点的最后面:
l 创建文本节点:
l 创建属性节点:
l 插入节点:
l 需求://需求1: 点击所有的 li 节点时, 弹出对应的文本内容. //需求2: 选择 "城市" 或 "游戏", 然后填入对应的文本值, 创建改值对应的 li 节点, 并把新创建的 li 节点添加到选择对应的 ul 中 //1). 检查是否选择 radio, 若没有选择, 给出相应提示: "请选择类型" //2). 检查是否在 text 中输入文本值, 若没有输入或输入的为空格, 给出相应提示: "请输入文本值" //3). 对新加入到 DOM 树中的 li, 要求具备和其他原有的 li 同样的功能: 点击 li 节点时, 弹出对应的文本内容.
l 需求:把新创建的li节点放到bj节点的前面,
l 需求:把新创建的li节点放到bj节点的后面,自己写一个函数insertAfter(newNode,refNode)
六、 替换节点:
l 需求:替换两个子节点的位置:
l 需求:实现为所有的li添加click事件,实现game和city对应位置的子节点的互换:
七、 删除节点
八、 innerHTML属性
l innerHTML 属性可以用来读,写某给定元素里的 HTML 内容。
九、 用js解析xml文件:(目前不兼容火狐
十、 将JavaScript代码分离出来:为js文件
十一、 关于 if() 中可以放置的表达式
l 当 if 中的表达式为 false, undefined, null, "", 0 时表示不满足条件, 此外都满足条件.
十二、 关于 value 和 nodue:
l value: html 表单元素的某个节点的 value 属性值. <input type="text" value=""> -- value 值可通过 .value 获取; 但 <p value=""></p> 中的 value 属性值无法通过 .value 来获取
l . nodue: 文档(html 或 xml) 中节点的一个属性, 该属性和 nodeType, nodeName 并列. 该属性通常用来获取文本节点的文本值