JavaScript之怎样获取元素节点
JavaScript获取元素节点一共有三种方法,分别是通过元素ID、通过标签名字和通过类名字来获取;
1.通过元素ID属性的ID值来获得元素对象-getElementById()
DOM提供了一个名为getElementById()的方法,这个方法将返回一个与括号里有着一样id值的元素节点对应的对象。他是document对象特有的函数,这个函数的参数只有一个,只能是你想要获得的元素的ID值,这个值必须放在单引号或者双引号里面。
注意:JavaScript语言区分字母大小写,所以在写getElementById千万别写成getElementByid,这样得不到你想要获得的元素对象。
<body>
<div id="id">
</div>
<script type="text/javascript">
alert(typeof document.getElementById('id'));
</script>
</body>
输出:object; 这说明了getElementById()返回的确实是一个对象;
2.通过标签名字-getElementsByTagName()
DOM提供了一个名为getElementsByTagName()的方法,这个方法返回一个与括号里有着一样标签名的元素数组对应的对象数组。也就是说返回的是所有匹配的元素所组成的一个元素数组。。 他是document对象特有的函数,这个函数的参数只有一个,只能是你想要获得的元素的标签名,这个值必须放在单引号或者双引号里面。返回的就是个数组(http://www.cnblogs.com/GreenLeaves/p/5684530.html)-数组介绍,那我们就可以获得他的length属性,如下代码
<body>
<div id="id">
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<script type="text/javascript">
alert(document.getElementsByTagName('li').length);
</script>
</body>
输出:3,证明getElementByTagName()返回的确实是一个元素对象数组;
2.1 getElementsByTagName()允许把一个通配符(星号字符*)作为他的参数,这意味这文档里的每个元素都将在这个函数的返回值里占有一席之地;如果你想知道某份html文档一共有多少元素节点,如下代码所示:
<body>
<div class="p a">
<div class="a">
</div>
</div>
<div class="a">
</div>
<div class="a">
</div>
<script type="text/javascript">
alert(document.getElementsByTagName('*').length);
</script>
</body>
3.通过class属性的类名来获得元素对象-getElementsByClassName()
HTML5 DOM中新增了一个令人期待已久的方法getElementsByClassName(),这个方法能让我们通过class属性的类名来访问元素。但是某些DOM可能还没有实现(基本都已实现),因此在使用的时候要当心。
DOM提供了一个名为getElementsByClassName()的方法,这个方法返回一个与括号里有着一样类名的元素数组对应的对象数组。也就是说返回的是所有匹配的元素所组成的一个元素数组。 他是document对象特有的函数,这个函数的参数只有一个,只能是你想要获得的元素的类名,这个值必须放在单引号或者双引号里面。返回的就是个数组(http://www.cnblogs.com/GreenLeaves/p/5684530.html)-数组介绍,那我们就可以获得他的length属性,如下代码
<body>
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
<script type="text/javascript">
alert(document.getElementsByClassName('a').length);
</script>
</body>
输出:3,证明getElementsByClassName()返回的确实是一个元素对象数组;
因为getElementsByClassName()这个方法非常有用,但是可能有些浏览器不支持,所以我们必须用已有的DOM方法来实现他的功能;如下代码所示:
<body>
<div id="target">
<div class="a">
</div>
<div class="a">
</div>
<div class="a">
</div>
</div>
<script type="text/javascript">
/*
第一步:给定搜索起点node;
第二步:判断DOM是否实现getElementsByClassName()这个方法,有正常返回,没有用已有的DOM方法实现相同的效果返回匹配的元素数组
*/
function getElementsByClassName_zdy(node,classname) {
if (node.getElementsByClassName) {
return node.getElementsByClassName(classname);
} else {
var results = Array();
var elements = node.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
if (elements[i].className.indexOf(classname) != -1) {
results[results.length] = elements[i];
}
}
return results;
}
} alert(getElementsByClassName_zdy(document.getElementById('target'), 'a').length)
</script>
</body>
JavaScript之怎样获取元素节点的更多相关文章
- Javascript及Jquery获取元素节点以及添加和删除操作
用了javascript和jquery很久,把所有元素节点的操作总结了下,放在博客上作为记录. Javascript获取元素的主要方式有三种 1.document.getElementById('ma ...
- 获取元素节点的子节点 & 获取文本节点
1. 获取元素节点的子节点(**只有元素节点才有子节点): ①. childNodes 属性获取全部的子节点, 但该方法不实用. 因为如果要获取指定的节点 ...
- 获取元素节点 & 操作属性节点
1.html 文档编写 js 代码的位置: window.onload事件在整个html文档被完全加载完再执行, 所以可以获取html文档的任何节点 js-window-onload.html ...
- JavaScript通过ID获取元素坐标
JavaScript通过ID获取元素坐标 function getElementPos(elementId) { var ua = navigator.userAgent.toLowerCase ...
- 根据ClassName获取元素节点
功能描述: 通过ClassName获取元素节点,并解决兼容性问题 实现效果: 编码思路: 利用getElementsByTagName选出所有元素,再根据ClassName条件进行筛选 代码示例:
- javascript中获取元素节点的文本
<div id="test"> <strong>i'm strong</strong> </div> 1.elementNode.i ...
- JavaScript中的获取元素的方法
通过id获取元素 document.getElementById(id名字) 通过标签获取元素 document/元素.getElementsByTagName(标签名) 通过css选择器获取元素 d ...
- 怎样通过id属性值获取元素节点
方法1: 使用document.getElementById(); 方法2: 使用document.querySelector(); document.getElementById("app ...
- 怎样通过html标签名获取元素节点集合
方法1. 使用document.querySelectorAll(); 方法2. 使用document.getElementsByTagName(); document.querySelectorAl ...
随机推荐
- ecshop的小总结
1 为防止非法调用自己的页面,在被包含页面加上: if (!defined('IN_ECS')) {die('Hacking attempt'); } 2 在主动包含页面要定义define('IN_ ...
- java reflection总结
一.java反射常用方法 获取Class的几种方式: Class class1 = String.class;// 该方法最为安全可靠,程序性能更高. Class class2 = s ...
- Android UI SurfaceView的使用-绘制单个图型或多个图形
新建MyView类继承自SurfaceView: public class MyView extends SurfaceView implements SurfaceHolder.Callback { ...
- hdu 5584 LCM Walk(数学推导公式,规律)
Problem Description A frog has just learned some number theory, and can't wait to show his ability t ...
- C#反射概念以及实例详解【转】
2009-08-28 13:12 佚名 互联网 我要评论(1) 字号:T | T C#反射概念以及实例向你介绍了C#反射的基本内容以及C#反射实例的简单应用,希望对你了解和学习C#反射以及C#反射实例 ...
- 黑马程序员_高新技术之javaBean,注解,类加载器
----------- android培训.java培训.java学习型技术博客.期待与您交流! ---------- 第一部分 javaBean 一,由内省引出javaBean 1,内省: 内省对应 ...
- DevExpress控件之:ChartControl 动态绑定数据
private void BindData(ViewType vt) { chartControl1.Series.Clear(); //Series series1 = new Series(&qu ...
- 【转】 LESS CSS 框架简介
简介 CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中.HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义. ...
- android监听键盘
android中的带有输入功能的页面布局经常被弹出的键盘遮挡,一种处理方法是监听键盘的弹出,设置布局的padding或隐藏某些占位控件,使得输入框不被键盘遮挡.一种常用的方法是当Activity设置为 ...
- input type=button设置高度不管用
<input type="button" name="calRate" id="calRate" value="查询&quo ...