childNodes知识点:

 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
window.onload = function() { var oUl = document.getElementById('ul1'); /*
元素.childNodes : 只读 属性 子节点列表集合
标准下:包含了文本和元素类型的节点,也会包含非法嵌套的子节点
非标准下:只包含元素类型的节点,ie7以下不会包含非法嵌套子节点 childNodes只包含一级子节点,不包含后辈孙级以下的节点 DOM节点的类型有很多种 12种 元素.nodeType : 只读 属性 当前元素的节点类型 元素节点 : 1
属性节点 : 2
文本节点 : 3
注释节点 : 8
文档节点 : 9
*/ alert( oUl.childNodes.length ); //alert( oUl.nodeType ); //alert(oUl.childNodes[0].nodeType); //属性
// 元素.attributes : 只读 属性 属性列表集合 //alert( oUl.attributes.length ); //alert( oUl.attributes[0].nodeType ); for (var i=0; i<oUl.childNodes.length; i++) { if ( oUl.childNodes[i].nodeType == 1 ) {
oUl.childNodes[i].style.background = 'red';
} } }
</script>
</head> <body>
<ul id="ul1" style="border: 1px solid red;">
<li>11111 <span>span</span></li>
<li>22222</li>
<li>33333</li>
<li>44444</li>
<p>pppppppp</p>
</ul>
</body>
</html>

children知识点:

 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
window.onload = function() { var oUl = document.getElementById('ul1'); /*
元素.children : 只读 属性 子节点列表集合
标准下:只包含元素类型的节点
非标准下:只包含元素类型的节点
*/ //alert( oUl.children.length ); for (var i=0; i<oUl.children.length; i++) { oUl.children[i].style.background = 'red'; } }
</script>
</head> <body>
<ul id="ul1" style="border: 1px solid red;">
<li>11111 <span>span</span></li>
<li>22222</li>
<li>33333</li>
<li>44444</li>
<p>pppppppp</p>
</ul>
</body>
</html>
 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
window.onload = function() { var oUl = document.getElementById('ul1');
/*
元素.firstChild : 只读 属性 第一个子节点
标准下:firstChild会包含文本类型的节点
非标准下:只包含元素节点
元素.firstElementChild : 只读 属性 标准下获取第一个元素类型的子节点
*/ //alert( oUl.firstChild ); //alert( oUl.firstElementChild ); /*if ( oUl.firstElementChild ) {
oUl.firstElementChild.style.background = 'red';
} else {
oUl.firstChild.style.background = 'red';
}*/ var oFirst = oUl.firstElementChild || oUl.firstChild;
oFirst.style.background = 'red'; /*
元素.lastChild || 元素.lastElementChild 最后一个子节点
*/
var oLast = oUl.lastElementChild || oUl.lastChild;
oLast.style.background = 'yellow'; /*
元素.nextSibling || 元素.nextElementSibling 下一个兄弟节点
*/
var oNext = oFirst.nextElementSibling || oFirst.nextSibling;
oNext.style.background = 'blue'; /*
元素.previousSibling || 元素.previousElementSibling 上一个兄弟节点
*/
var oPrev = oLast.previousElementSibling || oLast.previousSibling;
oPrev.style.background = 'orange'; }
</script>
</head> <body>
<ul id="ul1">
<li>11111</li>
<li>22222</li>
<li>33333</li>
<li>44444</li>
</ul>
</body>
</html>

应用 实例:

1.留言板加强
    最多只能添加5(自己定)条,最先留的言会被清除
2.为留言添加批量删除
    可以点击选择单个留言,点击批量删除按钮,可以删除被选中的留言内容

 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
window.onload = function() { var oText = document.getElementById('text1');
var oBtn = document.getElementById('btn');
var oBtn2 = document.getElementById('btn2');
var oUl = document.getElementById('ul1'); oBtn.onclick = function() { /*
document.createElement(标签名称); 创建元素
*/ var oLi = document.createElement('li'); //oLi.innerHTML = oText.value + '<a href="javascript:;">删除</a>';
oLi.innerHTML ='<input type="checkbox" value="" />'+ oText.value; var oA = document.createElement('a');
oA.innerHTML = '删除';
oA.href = 'javascript:;';
oA.onclick = function() { /*
父级.removeChild(要删除的元素); 删除元素
*/ oUl.removeChild( this.parentNode ); } oLi.appendChild( oA ); //添加到页面中
/*
父级.appendChild(要添加的元素) 方法 追加子元素
*/
//oUl.appendChild( oLi ); /*
父级.insertBefore(新的元素,被插入的元素) 方法 在指定元素前面插入一个新元素
在ie下如果第二个参数的节点不存在,会报错
在其他标准浏览器下如果第二个参数的节点不存在,则会以appendChild的形式进行添加
*/
//oUl.insertBefore( oLi, oUl.children[0] ); if ( oUl.children[0] ) {
oUl.insertBefore( oLi, oUl.children[0] );
if(oUl.children.length>5){
oUl.removeChild( oUl.children[oUl.children.length-1]);
};
} else {
oUl.appendChild( oLi );
}; var aInput=oUl.getElementsByTagName("input"); for(var i=0;i<aInput.length;i++){ aInput[i].index=i;
aInput[i].onOff=true;//为当前表单元素添加一个开关
aInput[i].onclick=function(){ if(aInput[this.index].onOff){//如果当前开关为true
aInput[this.index].value='checkBox';//就为当前 表单 的value值添加check
aInput[this.index].onOff=false;
}else{
aInput[this.index].value='';
aInput[this.index].onOff=true;
};
};
}; oBtn2.onclick=function(){
for(var i=0;i<aInput.length;i++){
if(aInput[i].value=='checkBox'){
oUl.removeChild( aInput[i].parentNode );
};
};
}; }; }
</script>
</head> <body>
<input type="text" id="text1" /><input type="button" value="留言" id="btn" />
<ul id="ul1"></ul>
<input type="button" value="删除" id="btn2" />
</body>
</html>

Javascript DOM基础(二) childNodes、children的更多相关文章

  1. JavaScript DOM 基础操作

    JavaScript DOM 基础操作 一.获取元素的六方式 document.getElementById('id名称') //根据id名称获取 document.getElementsByclas ...

  2. JavaScript Dom基础-9-Dom查找方法; 设置DOM元素的样式; innerHTML属性的应用; className属性的应用; DOM元素上添加删除获取属性;

    JavaScript Dom基础 学习目标 1.掌握基本的Dom查找方法 domcument.getElementById() Domcument.getElementBy TagName() 2.掌 ...

  3. JavaScript DOM基础总结

    上个月在进行百度三面时候,面试官提问JavaScript DOM方法,我回答的有点少,前面太关注JavaScript 兼容性,框架方面,JavaScript 原生DOM基础没有记牢,心中有点遗憾.下来 ...

  4. Javascript DOM基础(一)概念

    Dom基础概念: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" ...

  5. JavaScript(DOM编程二)

    文档加载完毕之后,在Window.onload方法中创建元素节点,添加到DOM文档中 代码演示: <html> <head lang="en"> <m ...

  6. javascript DOM基础操作

    DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口).DOM描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM ...

  7. JS基础---->javascript的基础(二)

    记载javascript的一些基础的知识.我们在春风秋雨中无话不说,又在春去秋来中失去了联系. js中string类型 一.字符方法:charAt() 和 charCodeAt() var strin ...

  8. JavaScript Dom基础

    一.DOM查找 1.document.getElementById("id") -功能:返回对拥有指定ID的第一个对象的引用 -返回值:DOM对象 -说明:id为DOM元素上id属 ...

  9. JavaScript学习 - 基础(二) - 基础类型/类型转换

    基础类型 - 数字类型(Number) 1.最基本的数据类型 2.不区分整型数值和浮点型数值 3.所有数字采用64位浮点格式存储,相当于Java和C语言中double格式 4.能表示的最大值 +- 1 ...

随机推荐

  1. CSS3的chapter1

    初学CSS3的第一天,虽然之前有接触过CSS,不过好像是CSS2,我也上网了解了一下CSS3,新增了很多强大的元素,也让我更有兴趣去学习了. CSS(Cascading Style Sheets) 层 ...

  2. IOS详解TableView——内置刷新,EGO,以及搜索显示控制器

    内置刷新 内置刷新是苹果IOS6以后才推出的一个API,主要是针对TableViewController增加了一个属性,refreshControl,所以如果想用这个内置下拉刷新的话,最好给你的Tab ...

  3. 学的一点点ps

    从C语言的代码中解脱开始学ps,看到色彩鲜明的东西,心里只有那么爽.哈哈.只学习3天,虽然只是一些皮毛,可还是学到了一些以前不知道的东西.让我对ps多了很多兴趣,决定以后要自学更多的ps技能.要给图片 ...

  4. JavaScript中的String

    1.基本类型String var str ="helloworld"; 要记住:保存的是Unicode字符,一旦创建便不可变   2.引用类型String var strObj = ...

  5. CoreText原理及基本使用方法

    关于富文本的排版也是现在的一个技术点,以下是近日关于CoreText的学习记录以及个人理解,希望能对正在学习CoreText的朋友起到帮助. 1.框架坐标系 首先让我们先来看看CoreText坐标系和 ...

  6. 聊天界面之进度条cell(一)

    ProgressCell用于显示文件传输的进度,困难点在于根据下载进度更新cell的进度条,先后尝试了几种方法: 1.有新的下载进度时,直接调用reloadData() 2.使用reloadRowsA ...

  7. Python类的实例属性详解

    实例属性 1.类被实例化后才会具有的属性 2.一般在_init_()方法中创建并初始化 3.直接使用即定义:self.<属性名> 4.引用方法:self.<属性名> 5.sel ...

  8. mac 文本编辑器 文本编码Unicode utf-8 不适用的问题

    在mac上使用默认的文本编辑器打开下载的xx.txt文件,如果文本是gbk的编码可能会出现 文本编码Unicode utf-8 不适用的打开错误,如下图 解决方式: 文本编辑---偏好设置-----打 ...

  9. Port Hacking

    Port information21 ftp 主要看是否支持匿名,也可以跑弱口令22 ssh23 telnet79 Finger80 web 常见web漏洞以及是否为一些管理后台111 rpcinfo ...

  10. (33)odoo中产品价格字段

    打开product.template 和 product.product 模型发现有很多关于价格描述的字段 product.template:        price        list_pri ...