文档章节

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

暂无文章

获取多个集合列表的笛卡尔积

获取多个集合笛卡尔积 电商中典型业务场景:商品搜索 单属性属性值之间为并查询 不同属性的属性值之间查询为与查询 import java.util.ArrayList;import java.util.List;/** * Created w...

键走偏锋
17分钟前
0
0
echarts 迁移地图 控制鼠标缩放大小比例

在网上找了好久没有找到解决方式,还是重新看了一下文档,终于找到的解决方案, zoom:1, //默认显示级别 scaleLimit:{min:1,max:3}, // 缩放级别 echarts 文档-配置项链接 http://echarts.b...

心驰
20分钟前
0
0
Boot2Docker ISO is out-of-date,

Boot2Docker ISO is out-of-date, downloading the latest release. 使用docker-machine时无法更新Boot2Docker ISO导致创建vm machine失败 解决方法:关闭网络,创建好之后再开启...

writeademo
29分钟前
0
0
在 Tomcat 中设置 Tapestry 框架的 html 热加载

如果开发中使用到了 Tapestry 这个框架,如果事先没有设置过的话,开发的时候 html 是不会热加载的,也就是说修改了 html 文件,不能刷新浏览器后立马看到修改完的效果,必须先重新启动应用服...

LeoXu
50分钟前
0
0
【微服务】开启巨石应用到微服务的探索

背景 在过去的一年时间里,我一直在从事一件事情,将现有的单体应用(巨石应用)向微服务改造。 接下来,将持续整理一些在微服务路上的学习与成长。 为什么要做微服务 单体应用,开发、部署简...

艳沐石
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部