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 相关文章推荐
JavaScript的事件绑定(方便不支持js的时候)
Oct 01 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
Oct 14 Javascript
让浏览器DOM元素最后加载的js方法
Jul 29 Javascript
JavaScript去除数组里重复值的方法
Jul 13 Javascript
详解javascript实现瀑布流绝对式布局
Jan 29 Javascript
jQuery插件实现文件上传功能(支持拖拽)
Aug 27 Javascript
Es6 写的文件import 起来解决方案详解
Dec 13 Javascript
JavaScript实现替换字符串中最后一个字符的方法
Mar 07 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
Sep 14 Javascript
element-ui table span-method(行合并)的实现代码
Dec 20 Javascript
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
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
javascript 判断整数方法分享
2014/12/16 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
Python 获取div标签中的文字实例
2018/12/20 Python
简单了解django索引的相关知识
2019/07/17 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
如何通过python实现全排列
2020/02/11 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
安踏官方商城:anta.cn
2019/12/16 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
校园活动策划书范文
2014/01/10 职场文书
《称象》教学反思
2014/04/25 职场文书
主题教育活动总结
2014/05/05 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
入党个人总结范文
2015/03/02 职场文书
家长会感言
2015/08/01 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers