文档章节

getElementBy......................................

奥巴码侬
 奥巴码侬
发布于 2015/04/14 14:19
字数 314
阅读 24
收藏 0

document.getElementById

通过指定的id获取html元素,所有浏览器支持

ie7以下有bug 

如果表单元素name与要获取元素的id相同,且在id元素前面,获取到的元素为 表单元素

document.getElementsByName

getElementsByName 返回带有指定名称的对象的集合

ie8 以下 id和指定名称相同的表单元素也会被获取

var eles = document.getElementsByName('name');
alert(eles.length,' ----');

此时ie8(含)以下  浏览器会弹出 3;

ie9 (含)以下 浏览器弹出 2,不支持非表单元素

所以平时用不写兼容方法的话,为了保持获取准确性

1 元素是表单元素

2 元素 id 不要和name有重复的 

getElementsByTagName

获取指定标签名的元素集合,所有浏览器支持

getElementsByClassName

获取指定包含class名的元素集合,ie8以下 不支持

我们可以封装类似的方法解决兼容

      var getClassNameNodes = function (name, eleName) {
    		var start = Date.now();
    		eleName = eleName || "*";
    		var aEles = [],
    			aNodeLists = document.getElementsByTagName(eleName);
    		var i=0,
    			length=aNodeLists.length;
    		if (!length) return [];
    		for (; i<length; i++) {
    			if (hasClass(aNodeLists[i], name)) {
    				aEles.push(aNodeLists[i]);
    			}
    		}
    		return aEles;
      }

	var aClassName;
	function hasClass (ele, name) {
		if (ele.className == "") return false;
		aClassName = trim(ele.className).split(" ");
		for (var i=0, length=aClassName.length; i<length; i++) {
			if (aClassName[i] == name) {
				return true;
			}
		}
		return false;
	}

	function trim (string) {
		var regexp = /(^\s*)|(\s*)$/g;
		return string.replace(regexp, '');
	}



© 著作权归作者所有

共有 人打赏支持
奥巴码侬
粉丝 33
博文 122
码字总数 43584
作品 0
西城
程序员
私信 提问
querySelectorAll() 和 getElementBy() 方法的区别

querySelectorAll和getElementsBy方法都可以用在element上,但是querySelector作用于Element、nodeList、DocumentFragment时的查找范围是从整个文档开始,返回的是一个 Static Node List(对于...

晚风0623
12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多
[LintCode] Linked List Cycle(带环链表)

描述 给定一个链表,判断它是否有环。 样例 给出 -21->10->4->5, tail connects to node index 1,返回 true。 这里解释下,题目的意思,在英文原题中,tail connects to node index 1 表示的...

honeymose
14分钟前
0
0
Android :报错Your project path contains non-ASCII characters.

报错内容如下 Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See ht......

lanyu96
25分钟前
2
0
Nginx平滑添加模块

Nginx已经编译安装并运行了一段时间, 然后某一天, 发现需要用到某个模块但当初没有编译, 这个时候怎么办呢? 卸载重新安装肯定可以的, 如果Nginx版本没有变更的话, 则有一个相对平滑的方法来添...

老菜鸟0217
30分钟前
5
0
spark安装测试

spark安装测试 由于本地已经安装好hadoop相关组件,所以本文是在yarn的基础上对spark进行安装及测试 确保hdfs及yarn成功启动,hadoop版本为2.7.3 安装scala,由于本人安装的spark是2.4.0,对应...

-九天-
44分钟前
4
0
周末看完了《电能计量自动化技术》

整体质量还行,下面分别将心得记录如下: 第一章:发展历程可以看看,现在算是智能电网阶段 2:讲主站系统。以文件进行各模块的交互很值得思考,尤其是批量数据,多团队合作的情况下。另外线...

max佩恩
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部