javascript getElementsByClassName 和js取地址栏参数_javascript技巧

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');

时间: 2024-10-31 16:20:30

javascript getElementsByClassName 和js取地址栏参数_javascript技巧的相关文章

javascript 利用arguments实现可变长参数_javascript技巧

javascript arguments解释,实现可变长参数. 在C#中,有可变长参数params[],但是在js中,如何实现这种可变参数呢? 一.可变长参数 arguments是非常好的解决方法,一直不知道javascript有这个东西. 先来看看应用场景,使用arguments传入任意个数的参数到js函数里的写法. function Test() { console.log(arguments[0]); console.log(arguments[1]); console.log(argum

用javascript获取地址栏参数_javascript技巧

方法一: <script type="text/javascript"> <!-- function Request(strName){   var strHref = "www.cnlei.org/index.htm?a=aaa&b=bbb&c=ccc";   var intPos = strHref.indexOf("?");   var strRight = strHref.substr(intPos + 

在JavaScript中获取请求的URL参数_javascript技巧

当然我们可以在后台中获取参数的值,然后在前台js代码中获取变量的值,具体做法请参考我的这篇文章:JavaScript获取后台C#变量以及调用后台方法. 其实我们也可以直接在js中获取请求的参数的值,通过使用window.location.search可以获取到当前URL的?号开始的字符串,如前面的链接获取到的search为?id=001.再对获取的字符串进行处理,就可以获取到参数的值了. 复制代码 代码如下: function getUrlParam(name) { var reg = new

javascript URL锚点取值方法_javascript技巧

location.href='ping.html#chen=陈建平' 取锚点值 location.hash 结果是:#chen=陈建平 location.href='ping.html?chen=陈建平' 取?后面的值 location.href.search() 结果是:?chen=陈建平 再用substring(1) 就可以取#或?后的值了,再用split()方法可以把多个参数放入数据中 var args=xx.split('&')

使用js 设置url参数_javascript技巧

// 获取地址栏的参数数组function getUrlParams() {    var search = window.location.search;    // 写入数据字典    var tmparray = search.substr(1, search.length).split("&");    var paramsArray = new Array;    if (tmparray != null) {        for (var i = 0; i <

JS获取地址栏参数的几种方法小结_javascript技巧

复制代码 代码如下: <script> // 获取地址栏的参数数组 function getUrlParams() {  var search = window.location.search;  // 写入数据字典  var tmparray = search.substr(1, search.length).split("&");  var paramsArray = new Array;  if (tmparray != null) {   for (var

JS获取地址栏参数的几种方法小结

 本篇文章主要是对JS获取地址栏参数的几种方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助   代码如下: <script>  // 获取地址栏的参数数组  function getUrlParams() {   var search = window.location.search;   // 写入数据字典   var tmparray = search.substr(1, search.length).split("&");   var params

JS获取地址栏参数的几种方法

JS获取地址栏参数的几种方法   <script>  // 获取地址栏的参数数组  function getUrlParams() {   var search = window.location.search;   // 写入数据字典   var tmparray = search.substr(1, search.length).split("&");   var paramsArray = new Array;   if (tmparray != null)

javascript模拟post提交隐藏地址栏的参数_javascript技巧

通过js模拟post提交 1:请求需要的参数过长,超过get允许的最大长度 2:想要隐藏地址栏的参数 //新创建一个form表单 document.write('<form name=myForm></form>'); var myForm=document.forms['myForm']; myForm.action='runEmpAttendance'; myForm.method='POST'; var input = document.createElement('inpu