javascript学习笔记(十八) 获得页面中的元素代码


Posted in Javascript onJune 20, 2012

1.获取元素

getElementById()方法,通过元素的id获取元素,接受一个参数即要获取元素的id,如果不存在这个id返回 null
注意不要让表单元素的name和别的元素的id相同,IE8以下的IE浏览器用这个方法通过元素的name属性可以获得该元素
以下面元素为例

<div id ="myDiv">这里是id为“myDiv”的div内容</div>var document.getElementById("myDiv"); //"myDiv"区分大小写,取得<div>元素的引用
getElementsByTagName()方法,通过元素的标签名获得元素,接受一个参数即要获取元素的标签名,返回包含0个或多个的NodeList

var images = document.getElementsByTagName("img"); //获取页面中的所有<img>元素 alert(images.length); //图像的数量 
alert(images[0].src); //第一个图片元素的src 
alert(images.item(0).src); //同上

getElementsByName()方法,通过元素的name属性获得元素,接受一个参数即要获取元素的name属性,常用来获取单选按钮
<ul> 
<li><input type="radio" name="color" value="red" id="colorRed"><label for="colorRed"></label></li> 
<li><input type="radio" name="color" value="green" id="colorGreen"><label for="colorGreen"></label></li> 
<li><input type="radio" name="color" value="blue" id="colorBlue"><label for="colorBlue"></label></li> 
</ul>var radios = document.getElementsByName("color"); //获取name="color"的所有单选按钮

2.获取元素子节点或元素子节点及其后代节点

<ul id="myList"> 
<li>项目一</li> 
<li>项目二</li> 
<li>项目三</li> 
</ul>

注意:IE认为<ul>元素有3个子节点,分别是3个元素,其他浏览器会认为有7个子节点,包括3个元素和4个文本节点,如果<ul>在一行中:

<ul id="myList"><li>项目一</li><li>项目二</li><li>项目三</li></ul>


任何浏览器都认为有3个子节点

获取元素的子节点:

var ul = document.getElementById("myList"); 
for (var i=0,len = ul.childNodes.length ; i < len ; i++ ) { 
if ( ul.childNodes.length[i].nodeType == 1) { //nodeType == 1 说明节点是元素节点,而不是文本节点 
//执行某些操作 
} 
}

获取元素的子节点及其后代节点:
var ul = document.getElementById("myList"); 
var items = ul.getElementsByTagName("li"); //li里的li也会被取得

3通过节点的属性查找其它节点
nextSibling属性指向当前节点的下一个兄弟节点
previousSibling属性指向当前节点的上一个兄弟节点
firstChild属性指向第一个子节点,lastChild指向最后一个子节点
childNodes保存着所有子节点(其实是NodeList对象),可以通过方括号的方法访问如 someNode.childNodes[0] 访问第一个子节点
parentNode属性指向父节点

节点关系如下:

javascript学习笔记(十八) 获得页面中的元素代码

NodeList是个数组对象,我们可以把它转换为数组,函数如下
function converToArray (nodes) { 
var arrary = null; 
try { 
array = Array.prototype.slice.call(nodes,0); 
} 
catch (ex) { 
array = new Array(); 
for (var i=0,len=nodes.length ; i<len ; i++) { 
array.push(nodes[i]); 
} 
} 
return array; 
} var div = document.getElementById("side"); 
alert(converToArray(div.childNodes));
Javascript 相关文章推荐
js 数据类型转换总结笔记
Jan 17 Javascript
js 利用className得到对象的实现代码
Nov 15 Javascript
Javascript 加载和执行-性能提高篇
Dec 28 Javascript
jQuery滚动加载图片效果的实现
Mar 06 Javascript
通过url查找a元素并点击
Apr 09 Javascript
node.js实现多图片上传实例
Jun 03 Javascript
JavaScript获取表单内所有元素值的方法
Apr 02 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
Aug 05 Javascript
js实现3d悬浮效果
Feb 16 Javascript
轻松学习Javascript闭包
Mar 01 Javascript
jQuery插件echarts去掉垂直网格线用法示例
Mar 03 Javascript
jQuery实现图片下载代码
Jul 18 jQuery
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 #Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
Jun 20 #Javascript
javascript学习笔记(十五) js间歇调用和超时调用
Jun 20 #Javascript
javascript学习笔记(十四) window对象使用介绍
Jun 20 #Javascript
javascript学习笔记(十三) js闭包介绍(转)
Jun 20 #Javascript
javascript学习笔记(十二) RegExp类型介绍
Jun 20 #Javascript
javascript学习笔记(十一) 正则表达式介绍
Jun 20 #Javascript
You might like
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
javascript引用对象的方法
2007/01/11 Javascript
jquery 页面全选框实践代码
2010/04/02 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
wxPython 入门教程
2008/10/07 Python
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python 寻找局部最高点的实现
2019/12/05 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
美国单身专业人士在线约会网站:EliteSingles
2019/03/19 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
国税会议欢迎词
2014/01/16 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
个人违纪检讨书
2014/09/15 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
2014年终工作总结范本
2014/12/15 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
五年级语文教学反思
2016/03/03 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android