易截截图软件、单文件、免安装、纯绿色、仅160KB

自己动手用javascript写xpath

       自己以前写过一篇文章,是关于dom下xpath的编写,不过那是借助浏览器本身的特性,这次我想用javascrip和正则表达式打造自己的xpath,不多啰嗦,看代码:
  
function xpath(n,m){
 if(/\]$/i.test(m)){
  var t1=[]
  var reg=/^(\/\/|\/)(.+)\[(.+)\]$/i;
  m.match(reg);
  if(RegExp.$1=="/"){
   var t2=n.childNodes;
   for(var i=0;i<t2.length;i++){
    if(t2[i].nodeType==1 && t2[i].tagName.toLowerCase()==RegExp.$2)
    t1.push(t2[i]);
   }
  }else{
   var t2=n.getElementsByTagName(RegExp.$2);
   for(var i=0;i<t2.length;i++){
    if(t2[i].nodeType==1)
    t1.push(t2[i]);
   }
  }
  if(RegExp.$3.indexOf("='")>-1){
   var reg1=/([\w\d]+)(\^=|\~=|\!=|\$=|=)'(.+)'/i;
   RegExp.$3.match(reg1);
   //alert(RegExp.$3);
   switch(RegExp.$2){
    case "^=":
    for(var i=0;i<t1.length;i++){
     if(!(t1[i].getAttribute(RegExp.$1) && t1[i].getAttribute(RegExp.$1).substr(0,RegExp.$3.length)==RegExp.$3)){
      t1.splice(i,1);
      //alert(i);
      i--;
     }
    }
    break;
    case "$=":
    for(var i=0;i<t1.length;i++){
     if(!(t1[i].getAttribute(RegExp.$1) && t1[i].getAttribute(RegExp.$1).substr(t1[i].getAttribute(RegExp.$1).length-RegExp.$3.length,RegExp.$3.length)==RegExp.$3)){
      t1.splice(i,1);
      i--;
&nb


相关文档:

JavaScript中的indexOf方法

1.对于数组,我们可以自己写一个indexOf()方法:
[].indexOf || (Array.prototype.indexOf = function(v){
for(var i = this.length;i-- && this[i] !== v;);
return i; });
使用: var array = new Array();
array = ...;
if(array.ind ......

javascript typeof的用法

 
经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组.
if(document.mylist.length != "undefined" ) {} 这个用法有误.
正确的是 if( typeof(document.mylist.length) != "undefined" ) {}
或 if( !isNaN(document.mylist.length) ) {}
typeof ......

关于(javascript) "if"关键字的一个疑惑的地方

一直以来对if(obj)的用法有点疑惑,不知道如果obj是一个对象的时候(而不是简单的true/false),该怎么执行。在什么情况下该为true,什么情况下又该为false.
通过下面的小测试,了解到,当obj="",obj=undefined,obj=null,obj=NaN 的时候返回false,obj不为空的时候则返回true。
 
 
var obj ;//undefined
if(ob ......

javascript setTimeout 和 setInterval 区别

setTimeout (表达式,延时时间)
setInterval(表达式,交互时间)
延时时间/交互时间是以豪秒为单位的(1000ms=1s)
setTimeout  在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
setInterval 在执行时,它从载入后,每隔指定的时间就执行一次表达式
set Timeout 也可以实现象setInterval一样的功能
set ......

十 个最闻名的 JavaScript 库

 JavaScript 是 Web 开发与设计中缺一不可的货色,不管是一个简略的网页仍是一个专业的站点,也甭管你是好手仍是菜鸟,现今 JavaScript 库愈来愈强大,可以胜任好多复杂的工作,然则与此同时,众人在泛滥 JavaScript 库眼前又觉着不知所措,正文,我们将应用 Google 搜寻出排行前 十 位的 JavaScript 库,并对它们逐个 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号