文档章节

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
西城
程序员

暂无文章

LSM-Tree 大数据索引技术

一、LSM-Tree概述 核心思想就是放弃部分读能力,换取写入能力的最大化。LSM-Tree ,这个概念就是结构化合并树(Log-Structured Merge Tree)的意思,它的核心思路其实非常简单,就是假定内存...

PeakFang-BOK
27分钟前
1
0
vue.js响应式原理解析与实现

从很久之前就已经接触过了angularjs了,当时就已经了解到,angularjs是通过脏检查来实现数据监测以及页面更新渲染。之后,再接触了vue.js,当时也一度很好奇vue.js是如何监测数据更新并且重新...

peakedness丶
33分钟前
1
0
Weblogic补丁升级操作步骤

linux平台: weblogic1036 1:停止weblogic服务 2:打FMJJ补丁 a:获取weblogic_home目录并执行命令:export weblogic_home="/weblogic/wls1036_x64",(此目录一般为目录“user_projects”上...

fang_faye
46分钟前
1
0
04-《Apache Tomcat 9 User Guide》之部署项目

1.Introduction Deployment is the term used for the process of installing a web application (either a 3rd party WAR or your own custom web application) into the Tomcat server. 部......

飞鱼说编程
47分钟前
1
0
一位十年的老码农他眼中的区块链

大家可能已经听说过比特币、莱特币、以太币等等,以及它们作为一种新货币在市场上的潜力。 有趣的是,很多投资比特币的人也提到了区块链之类的东西。 显然,这项技术是比特币等其他东西的"基...

小刀爱编程
54分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部