javascript getElementsByClassName 和js取地址栏参数


Posted in Javascript onJanuary 02, 2010

getElementsByClassName()

为了从一大堆HTML代码中找出我们的树状菜单(也许有多个),我们先来实现一个通过className找DOM节点的方法:getElementsByClassName。这是对浏览器自有DOM方法的一个简单但实用的扩充。

此方法有两个参数:ele指出以哪个DOM节点为根节点寻找(也就是说只找ele的子节点),className指出符合条件的节点的class属性中必须包含怎样的className。它的返回值是一个数组,存放了所有符合条件的节点。

function getElementsByClassName(ele,className) { 
//获取所有子节点 
if(document.all){ 
var children = ele.all; 
}else{ 
var children = ele.getElementsByTagName('*'); 
} 
//遍历子节点并检查className属性 
var elements = new Array(); 
for (var i = 0; i < children.length; i++) { 
var child = children[i]; 
var classNames = child.className.split(' '); 
for (var j = 0; j < classNames.length; j++) { 
if (classNames[j] == className) { 
elements[elements.length] = child; 
break; 
} 
} 
} 
return elements; 
} var trees = getElementsByClassName(document,'TreeView');

最前面的一个if-else语是为了兼容IE5(IE5不能运行
document.getElementsByTagName('*'))。需要注意的是千万不要用浏览器检测的方法来写脚本,而应该直接使用将要用到的语句来测试是否可以执行,如果返回值为null或undefined,那再换一种方法。这样的脚本可以有更好的兼容性,也更健壮。
elements[elements.length] = child;,这句同样是为了兼容IE5才没有使用数组
的push方法。如果你一定要使用push方法,那么可以在执行getElementsByClassName()
之前先重载一遍push方法。代码如下:

Array.prototype.push = function(value){
this[this.length] = value;
}

注:原本我希望getElementsByClassName也能像push方法一样写,比如
HTMLElement.prototype.getElementsByClassName = ...。不过实际操作的时候发现在
运行时HTMLElement这个对象并不是固定的,每种tag似乎都不一样,只能作罢。

取地址栏参数

//v1: 
var URLParams = new Array(); 
var aParams = document.location.search.substr(1).split('&'); 
for (i=0; i < aParams.length i++){ 
var aParam = aParams.split('='); 
URLParams[aParam[0]] = aParam[1]; 
} 
//取得传过来的name参数 
name=URLParams['name']; //v2: 
Request = { 
QueryString : function(item){ 
var svalue = location.search.match(new 
RegExp('[\?\&]' + item + '=([^\&]*)(\&?)','i')); 
return svalue ? svalue[1] : svalue; 
} 
} 
var key = Request.QueryString('key');
Javascript 相关文章推荐
Packer 3.0 JS压缩及混淆工具 下载
May 03 Javascript
jquery 图片轮换效果
Jul 29 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
Apr 01 Javascript
33个优秀的 jQuery 图片展示插件分享
Mar 14 Javascript
JavaScript获取两个数组交集的方法
Jun 09 Javascript
javascript中this指向详解
Apr 23 Javascript
Bootstrap学习笔记之js组件(4)
Jun 12 Javascript
老生常谈javascript的类型转换
Oct 12 Javascript
jquery获取input type=text中的值的各种方式(总结)
Dec 02 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
Sep 14 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
firefox插件Firebug的使用教程
Jan 02 #Javascript
firefox firebug中文入门教程 脚本之家新年特别版
Jan 02 #Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
Jan 01 #Javascript
20个非常棒的Jquery实用工具 国外文章
Jan 01 #Javascript
JavaScript与DropDownList 区别分析
Jan 01 #Javascript
HTML node相关的一些资料整理
Jan 01 #Javascript
JQery 渐变图片导航效果代码 漂亮
Jan 01 #Javascript
You might like
如何使用PHP中的字符串函数
2006/10/09 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
python创建线程示例
2014/05/06 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
幼儿园家长评语
2014/02/10 职场文书
小学家长评语大全
2014/04/16 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
企业介绍信范文
2015/01/30 职场文书
大学生个人总结范文
2015/02/15 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
2015中学学校工作总结
2015/07/20 职场文书