最近工作中很多地方都使用到了Jquery,把一些踩过的坑写下来

1、jQuery全局变量的声明

    全局变量的好处在于减少变量的个数,并可以在不同的函数中直接使用,在某些传值的时候很好用,但他的坏处在于占用内存较多,增加耦合性

    全局变量有如下几种声明方式:

    一、var + 变量名的方式在function外部声明,如果在函数内部用此方法声明的即为局部变量

<script>
 
 
   
  var 
   test = 5; 
  //全局变量
 
 
   
  function 
   a(){
 
 
     
  var 
   a = 3; 
  //局部变量
 
 
     
  alert(a);
 
 
   
  }
 
 
   
  function 
   b(){
 
 
     
  alert(test);
 
 
   
  }
 
 
   
  //a();//调用a方法,那么方法里面的内容才会执行
 
 
   
  //b();//同上
 
 
</script>

  二、不用var,直接声明变量时,这个变量会被默认为全局变量,即使你是在函数内部声明此变量

<script>
 
 
     
  test = 5; 
  //全局变量
 
 
     
  function 
   a(){
 
 
       
  aa = 3; 
  //也是全局变量
 
 
       
  alert(test);
 
 
     
  }
 
 
     
  //a();  //输出5
 
 
     
  //alert(aa);//这里也可以方法a()方法里面的变量,因为aa是全局变量
 
 
   
  </script>

三、使用window全局对象声明

<script>
 
 
   
  window.test = 50;
 
 
   
  alert(test); 
  //输出50
 
 
</script>

jquery angular 改变值 jquery变量_字符串

2、jQuery字符串转化为数组、数组的遍历以及判断某个值是否在数组内

    在利用ztree实现某个功能时,需要根据数据库取出的值来判断该值是否已经被勾选过。

    数据是通过字符串类型存入数据库的,样式是这样的:“4063,4186,.......”

var push_merchants = "<?=$push_merchants;?>" . split ( ',' ) ;  //通过split()方法将字符串转化为数组,但注意这是数组里面的数据类型并不是数字而是字符串,如下图

由于一开始并没有注意这个问题,所以在后面判断值是否在数组中时出现了很大的问题。

function filter(treeId, parentNode, childNodes){
  
    if (!childNodes) return null;
  
    var zTree = $.fn.zTree.getZTreeObj("ztree");
  
    for (var i=0, l=childNodes.length; i<l; i++){
  
        childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
  
        //console.log($.inArray(childNodes[i].id,checkedNode));
  
           //如果数组中存在childNodes[i],则将状态变为选定
  
           if($.inArray(childNodes[i].id,checkedNode) > 0){ 
       
     //通过$.inArray()来判断数组中是否存在某个值,存在返回索引值,不存在返回-1
  
            zTree.checkNode(childNodes[i], true, true);
  
        }
  
    }
  
    return childNodes;
  
}

刚开始这段判断结果一直返回-1,后来经过检查发现:要判断的值为整型,而数组里的值全部为字符串,所造成了判断结果全部为错误,所以以后进行判断时一定要注意值的类型。

var   checkedNode = 
   new   Array() 
  ;
  
   
  
for   ( 
  var   i= 
  0 
  , 
  l=push_merchants. 
  length 
  ; 
  i<l 
  ; 
  i++){
  
       checkedNode[i] = 
  parseInt 
  (push_merchants[i]) 
  ;
  
}

通过遍历数组,我将数组内的值全部转化为了整型.

jquery angular 改变值 jquery变量_JQuery_02