今天看《权威华南》第6版384页的时候,准备在自己的网站试验一下这个例子,于是找到一个有DOM结构的网页,开始照着书上的代码,自己边想边写。

我的代码如下

HTML:

<div class="header_content"><div id="logo" class="logo" ><img alt="网站后台管理" src="data:images/man_logo.jpg"></div><div class="right_nav"><div class="text_left"><ul class="nav_list"><li><img width="8" height="21" src="data:images/direct.gif">网站后台管理系统</li></ul></div></div>
</div>

Javascript的代码如下:

<script type="text/javascript">
window.onload = function replace_Node(){var logo = document.getElementsByClassName("logo");   // alert(logo);var h2 = document.createElement("h2");var parent = logo.parentNode;// alert(parent.className);
    parent.replaceChild(h2,logo);h2.appendChild("logo");
}
</script>

差不多是按着书上的思路上写的代码,getElementsByClassName()这个方法,在IE8以及IE8以下是不能用,所以我用的火狐测试,火狐支持这种方法。当运行
到alert(logo);时,这是会弹出[Object HTMLElement],说明我已经找到了这个节点。可是到运行到alert(parent.className);的时候,却弹出 undefined ,没有定义。想了很久都找不出问题。我一开始以为是getElementsByClassName() 函数的问题,换成getElementById()也一样。后来想了一会,觉得这个函数难道返回的是一个Nodelist类数组,于是果断重写代码:

<script type="text/javascript">
window.onload = function replace_Node(){var logo = document.getElementsByClassName("logo")[0];   // alert(logo);var h2 = document.createElement("h2");var parent = logo.parentNode;// alert(parent.className);
    parent.replaceChild(h2,logo);h2.appendChild("logo");
}
</script>

这样写了之后,当再一次执行到 alert(parent.className); 的时候会弹出 "header_content".说明我已经获取到了class = '"logo"
的父节点;

请问你们遇到过类似的问题吗?

转载于:https://www.cnblogs.com/mynamexiaolong/archive/2013/05/31/3110000.html

Javascript节点的访问相关推荐

  1. Javascript节点

    目录 Javascript节点 一.节点概述 二.节点属性 三.获取节点 3.1.获取父节点parentNode 3.2.获取子节点 3.2.1.所有子节点childNodes 3.2.2.子元素节点 ...

  2. Android 在 SElinux下 如何获得对一个内核节点的访问权限

    点击打开链接 Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问. 本文将以用户自定义的 ...

  3. Android 5.0 SEAndroid下如何获得对一个内核节点的访问权限

    Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问. 本文将以用户自定义的内核节点/de ...

  4. JAVASCRIPT C# 相互访问

    空间管理 您的位置: ITPUB个人空间 » .NET技术 » 日志 .NEt专家博客! JAVASCRIPT C# 相互访问 上一篇 / 下一篇  2010-04-02 13:30:07 / 个人分 ...

  5. 服务器端可控情形的Javascript跨域访问解决方法

    在最近的一个web项目中为了实现bookmark功能碰到了javascript跨域访问的问题.起初,在google上搜的很多解决方案并不适用于我的情形,只在有一篇文章中提到的远程加载javascrip ...

  6. 运用javascript的成员访问特性来实现通用版的兼容所有浏览器的打开对话框功能...

    打开网页对话框,一般有三种方法:window.open.window.showModalDialog.window.showModelessDialog,每一种都有它的优点与不足.第一种方法:wind ...

  7. JavaScript数组越界访问

    JavaScript数组越界访问不会报错,只会返回undefined. let arr = ['t1', 't2']; console.log(arr[2]); // undefined 但这样访问会 ...

  8. javascript --- 利用节点关系访问HTML元素

    <input type="button" value="父节点"onclick="change(curTarget.parentNode);&q ...

  9. C# 根据节点索引访问XML配置文件

    查了一些,都是根据XML属性来访问指定节点,我这想根据节点索引来访问XML 首先上XML样式 1 <?xml version="1.0" encoding="utf ...

最新文章

  1. 使用 RPI.GPIO 模块的脉宽调制(PWM)功能
  2. PullToRefreshScrollView下拉刷新开源组件分析
  3. 【NLP】Attention Model(注意力模型)学习总结
  4. ExtJs 分组表格控件----监听
  5. jekenis安装与部署_入门兵器谱,测试相关软件系列——Jenkins自动化部署实录
  6. html的下拉刷新页面,html下拉刷新上拉加载Refresher3.0
  7. DIV的摇晃效果---jquery实现
  8. esxi6.7密码设置规则_太神奇了!excel表格竟然可以设置查看密码
  9. 《算法竞赛入门经典》————竖式问题
  10. html 酷狗音乐教程,仿酷狗html5手机音乐播放器主要部分代码_html5教程技巧
  11. B/S神思SS628(100)身份证阅读器开发
  12. VR养狗,养的是寂寞还是潮流?
  13. Linux机械硬盘初始化,教你如何初始化外接盒中的硬盘
  14. ug界面改为经典ug界面怎么设置ug界面设置
  15. 计算机绘制表格教案,《表格的制作》教学设计
  16. 虎头蛇尾的韩文学习记录
  17. python中取整求余的计算步骤
  18. 小程序 video 控制器外观调整_Razer Kishi 评测:吹破天的手机游戏控制器,真有那么好用吗?...
  19. Flutter最新开源框架,工作感悟
  20. 中国消防安装和维保市场预测及投资战略报告(2021版)

热门文章

  1. 你最缺钱的时候是怎么度过的?
  2. 梦见有人追我我拼命逃
  3. 作为一位75后的职场宝妈
  4. java-Comparable和Comparator的用法
  5. Mybatis_day1
  6. sql动态sql给变量复值_在动态SQL中使用变量
  7. SQL Server审核最佳做法
  8. Always On可用性组中SQL Server统计信息
  9. vue - rimraf
  10. java.util.ArrayList