全国服务热线:
0791-88196636

南昌莫非:childNodes、parentNode、previousSibling、nextSibling、firstChild和lastChild属性使用方法

 二维码 6959
发表时间:2020-12-09 11:06作者:南昌莫非网络科技公司来源:南昌莫非传媒网址:http://www.ncmofei.com/

南昌莫非:childNodes、parentNode、previousSibling、nextSibling、firstChild和lastChild属性使用方法

文档中所有的节点之间都存在这样或那样的关系。节点间的各种关系可以用传统的家族关系来描述,相当于把文档树比喻成家谱。在HTML中,可以将<body>元素看成是<html>元素的子元素;相应地,也就可以将<html>元素看成是<body>元素的父元素。而<head>元素,则可以看成是<body>元素的同胞元素,因为它们都是同一个父元素<html>的直接子元素。

   每个节点都有一个childNodes属性,其中保存着一个NodeLiist对象。NodeList是一种类数组对象,用于保存一组有序的节点,可以通过位置来访问这些节点。请注意,虽然可以通过方括号语法来访问NodeList的值,而且这个对象也有length属性,但它并不是Array的实例。NodeList对象的独特之处在于,它实际上是基于DOM结构动态执行查询的结果,因此DOM结构的变化能够自动反映在NodeList对象中。我们常说,NodeList是有生命、有呼吸的对象,而不是在我们**次访问它们的某个瞬间拍摄下来的一张快照。

   下面的例子展示了如何访问保存在NodeList中的节点——可以通过方括号,也可以使用item()

方法:

      var firstChild=someNode.childNodes[0];

      var secondChild=someNode.childNodes.item (1);

      var count=someNode.childNodes.length;

   无论使用方括号还是使用item()方法都没有问题,但使用方括号语法看起来与访问数组相似,因此颇受一些开发人员的青睐。另外,要注意length属性表示的是访问NodeList的那一刻,其中包含的节点数量。我们在本书前面介绍过,对arguments对象使用Array.prototype.slice()方法;可以将其转换为数组。而采用同样的方法,也可以将NodeList对象转换为数组。来看下面的例子:

//在IE中无效

var arrayofNodes=Array.prototype.slice.call( someNode.childNodes,0);

   除IE之外,这行代码能在任何浏览器中运行。由于IE将NodeList实现为一个COM对象,而我们不能像使用JScript对象那样使用这种对象,因此上面的代码在IE中会导致错误。要想在IE中将NodeList转换为数组,必须手动枚举所有成员。下列代码在所有浏览器中都可以运行:

function convertToArray( nodes){

var array=null;

try{

array=Array.prototype.slice.call( nodes,0);//针对非IE浏览器

) catch (ex) {

array=new Array();

for (var i=0. len=nodes.length;i<len; i++){

array.push (nodes [i]);

}

}

return array;

}

   这个convertToArray()函数首先尝试了创建数组的最简单方式。如果导致了错误(说明是在IE中),则通过try-catch块来捕获错误,然后手动创建数组。这是另一种检测怪癖的形式。

   每个节点都有一个parentNode属性.该属性指向文档树中的父节点。包含在childNodes列表中的所有节点都具有相同的父节点,因此它们的parentNode属性都指向同一个节点。此外,包含在childNodes列表中的每个节点相互之间都是同胞节点。通过使用列表中每个节点的previousSibling和nextSibling属性,可以访问同一列表中的其他节点。列表中**个节点的previousSibling属性值为null,向列表中最后一个节点的nextSibling属性的值同样也为null,如下面的例子所示:

if ( someNode.nextSibling===null)(

alert("Last node in the parent ' s childlNodes list.");

} else if (someNode.previousSibling===null){

alert("First node in the parent' s childNodes list.");

}

当然,南昌网站设计公司技术人员提示如果列表中只有一个节点,那么该节点的nextSibling和previousSibling都为null。

   父节点与其**个和最后一个子节点之间也存在特殊关系。父节点的firstChild和lastChild属性分别指向其childNodes列表中的**个和最后一个节点。其中,someNode.firstChild的值始终等于someNode.childNodes[O],而someNode.lasChild的值始终等于someNode.childNodes[someNode.childNodes.length-l]。在只有一个子节点的情况下,firstChild和lastChild指向同一个节点。如果没有子节点,那么firstChild和lastChild的值均为null。明确这些关系能够对我们查找和访问文档结构中的节点提供极大的便利。图10-2形象地展示了上述关系。

   在反映这些关系的所有属性当中,childNodes属性与其他属性相比更方便一些,因为只须使用简单的关系指针,就可以通过它访问文档树中的任何节点。另外,hasChildNodes()也是一个非常有

用的方法,这个方法在节点包含一或多个子节点的情况下返回true;应该说,这是比查询childNodes

列表的length属性更简单的方法。

   所有节点都有的最后一个属性是ownerDocument,该属性指向表示整个文档的文档节点。这种关系表示的是任何节点都属于它所在的文档,任何节点都不能同时存在于两个或更多个文档中。通过这个属性,我们可以不必在节点层次中通过层层回溯到达顶端,而是可以直接访问文档节点。

   虽然所有节点类型都继承自Node,但并不是每种节点都有子节点,我们将会讨论不同节点类型之间的差异.


企业新闻
关于南昌莫非网络科技公司2022年元旦放假安排通知.元旦:1月1日(星期六)至1月3号(星期一)放假,共计三天(无调休),1月4日(星期二)上班。
关于南昌莫非网络科技公司2021年国庆节放假安排通知。根据《国务院办公厅关于2021年部分节假日安排的通知》(国办发明电〔2020〕27号),结合我单位工作实际情况,现就2021年国庆放假的有关事项安排如下。
南昌莫非网络科技公司2021年中秋节放假通知.一、假期从:2021年09月19日到2021年09月21日结束,假期共3天(9月18日正常上班,9月26日正常休息)。二、如有紧急情况,请各位同仁及时配合相关部门主管人员把事情处理妥善。做好防火、防盗工作并督促各部门关好办公区域的门、窗等。
根据《国务院办公厅关于2021年部分节假日安排的通知》(国办发明电〔2020〕27号),结合我单位工作实际情况,现就2021年端午节放假的有关事项安排如下:一、放假时间:2021年6月12日(星期六)至2021年6月14日(星期一),共放假3天。
南昌莫非网络科技公司2021年五一劳动节放假通知.现就2021年五一劳动节放假的有关事项安排如下:一、放假时间,2021年5月1日(星期六)至2020年5月5日(星期三),共放假5天。4月25日(星期日)上班,5月6日(星期四)正常上班。
南昌莫非网络科技公司2021年清明节放假通知.2021年4月3日(星期六)-2021年4月5日(星期一)放假,共3天。4月6日(星期二)正常上班。放假期间,各项业务照常运行,售后问题您可以直接相关负责人提交服务单,技术人员将在12小时之内处理。
关于南昌莫非网络科技公司2021年春节放假安排通知.一、春节放假时间:2021年2月5日(农历腊月二十四)至2021年2月18日(农历正月初七)放假,共13天,2月19日(星期五)开始上班,2月21日星期日(农历正月初十)恢复正常上班。由于疫情,假期时间可能会有所变化,具体以通知为准。
关于南昌莫非网络科技公司2021年01月01日元旦放假通知。一、放假时间:2021年1月1日(星期五)至2021年1月3日(星期日)放假,共3天;2021年1月4日(星期一)正常上班。公司放假期间如有相关业务及服务事宜敬请拨打我司24小时服务热线:0791-8819-6636或咨询客服QQ:2401077293,可随时与我司进行联系。
南昌莫非网络科技公司2020年中秋节+国庆节放假通知。根据《国务院办公厅关于2020年部分节假日安排的通知》,为了让大家度过一个充实、平安的假期,现把2020年中秋国庆放假时间及温馨提示通知如下!
南昌莫非网络科技公司2020年五一放假通知.在过去的岁月里,南昌莫非网络科技公司与新老客户一直保持着愉快的合作,这离不开大家的鼎立支持和帮助。在未来的日子里还需要更多朋友们的支持与帮助,希望你们能始终如一的支持南昌莫非网络科技,并提出您宝贵的意见及建议。
南昌莫非网络科技公司2020年春节寒假放假安排通知。南昌莫非网络科技公司提前祝全国合作伙伴新春快乐、阖家幸福!预祝全体员工春节快乐!
南昌莫非网络科技公司2020年元旦节放假安排通知.元旦将至,南昌莫非网络科技公司预祝全体员工元旦快乐!现将2020年元旦节放假安排通告如下:一、放假时间:2020年1月1日,共1天。
网站建设行业方案
网站维护知识
网站制作常见问题
SEO网站优化教程
踏上云端,转型升级融入互联网时代,现在就联系我们吧!
——      我们时刻为你提供更多优质互联网技术服务      ——
姓名:
*
联系方式:
*
咨询项目:
内容:
*
在线留言
关于我们:南昌莫非文化传媒有限公司(简称:莫非传媒)专注于网站建设,网站SEO优化,小程序制作。提供全方位用户体验规划,品牌形象设计服务。为每一位企业客户的成长、腾飞助力!        网站建设、网站设计、网站制作、网站开发,就选网站建设公司-南昌莫非传媒!
扫一扫微信便捷交流
|
|
|
|
|
|
|
|
|
|
|
|
|
地址:江西省南昌市西湖区洪城路6号国贸广场A座巨豪峰
业务咨询  :  
272482065
售后服务 :
2401077293
服务热线:
0791-88196636
______________________________________________________________________________________________________________________________________________________________________________________________________