zoukankan      html  css  js  c++  java
  • jquery遍历筛选数组的几种方法和遍历解析json对象

    jquery grep()筛选遍历数组


    $().ready(
       function(){
           var array = [1,2,3,4,5,6,7,8,9];
           var filterarray = $.grep(array,function(value){
               return value > 5;//筛选出大于5的
           });
           for(var i=0;i<filterarray.length;i++){
               alert(filterarray[i]);
           }
           for (key in filterarray){
               alert(filterarray[key]);
           }
       }
    );

    jquery each()筛选遍历数组

    $().ready(
       function(){
           var anObject = {one:1,two:2,three:3};//对json数组each
           $.each(anObject,function(name,value) {
               alert(name);
               alert(value);
           });
           var anArray = ['one','two','three'];
           $.each(anArray,function(n,value){
               alert(n);
               alert(value);
           }
           );
       }
    );

    jquery inArray()筛选遍历数组

    $().ready(
       function(){
           var anArray = ['one','two','three'];
           var index = $.inArray(‘two’,anArray);
           alert(index);//返回该值在数组中的键值,返回1
           alert(anArray[index]);//value is two
       }
    );

    jquery map()筛选遍历数组

    $().ready(
       function(){
           var strings = ['0','1','2','3','4','S','6'];
           var values = $.map(strings,function(value){
                   var result = new Number(value);
                   return isNaN(result) ? null:result;//isNaN:is Not a Number的缩写
               }
           );
           for (key in values) {
               alert(values[key]);
           }
       }
    );

    js遍历解析json对象1

    var json = [{dd:'SB',AA:'东东',re1:123},{cccc:'dd',lk:'1qw'}];
    for(var i=0,l=json.length;i<l;i++){
       for(var key in json[i]){
           alert(key+’:'+json[i][key]);
       }
    }

    js遍历解析json对象2

    有如下 json对象:
    var obj ={”name”:”冯娟”,”password”:”123456″,”department”:”技术部”,”sex”:” 女”,”old”:30};
    遍历方法:
    for(var p in obj){
       str = str+obj[p]+’,’;
       return str;
    }

    下面通过例子来说明下具体实现方法

    JQuery拿取对象的方式
    $(‘#id’) :通过元素的id
    $(‘tagName’) : 通过元素的标签名
    $(‘tagName tagName’) : 通过元素的标签名,eg: $(‘ul li’)
    $(‘tagName#id): 通过元素的id和标签名
    $(‘:checkbox’):拿取input的 type为checkbox’的所有元素:
    Eg: <input type="checkbox" name="appetizers"
                     value="imperial"/>
    
    $('span[price] input[type=text]') :拿取下面的input元素
    <span price="3">
    <input type="text" name="imperial.quantity"
                     disabled="disabled" value="1"/>
    </span>
    $('div',$(this).parents('div:first')):拿取该div的上(至少都是父节点)的第一个div节点
    $('~ span:first',this): locates the first sibling of this that’s a <span> element.
    
    延迟加载js文件:
    $.getScript
    例子:
    Html文件:
    Java代码
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
    <html>  
    <head>  
        <title>$.getScript Example</title>  
        <link rel="stylesheet" type="text/css" href="../common.css">  
        <script type="text/javascript"
                src="../scripts/jquery-1.2.1.js"></script>  
        <script type="text/javascript">  
          $(function(){  
            $('#loadButton').click(function(){  
              $.getScript(//在Firefox/3.0.1中会出现一个错误(语法错误,定义的变量不起作用,ff2没问题)  
                'new.stuff.js'//,function(){$('#inspectButton').click()}  
              );  
            });  
            $('#inspectButton').click(function(){  
              someFunction(someVariable);  
              test()  
            });  
          });  
        </script>  
    </head>  
    
    <body>  
        <button type="button" id="loadButton">Load</button>  
        <button type="button" id="inspectButton">Inspect</button>  
    </body>  
    </html>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
        <title>$.getScript Example</title>
        <link rel="stylesheet" type="text/css" href="../common.css">
        <script type="text/javascript"
                src="../scripts/jquery-1.2.1.js"></script>
        <script type="text/javascript">
          $(function(){
            $('#loadButton').click(function(){
              $.getScript(//在Firefox/3.0.1中会出现一个错误(语法错误,定义的变量不起作用,ff2没问题)
                'new.stuff.js'//,function(){$('#inspectButton').click()}
              );
            });
            $('#inspectButton').click(function(){
              someFunction(someVariable);
        test()
            });
          });
        </script>
    </head>
    <body>
        <button type="button" id="loadButton">Load</button>
        <button type="button" id="inspectButton">Inspect</button>
    </body>
    </html>
    
    Js文件:
    Java代码
    alert("I'm inline!");  
    
    var someVariable = 'Value of someVariable';  
    
    function someFunction(value) {  
    alert(value);  
    }  
    
    function test() {  
    alert('test');  
    }
    alert("I'm inline!");
    var someVariable = 'Value of someVariable';
    function someFunction(value) {
    alert(value);
    }
    function test() {
    alert('test');
    }
    
    jquery数组处理:
    Java代码
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
    <html>  
    <head>  
        <title>Hi!</title>  
        <script type="text/javascript" src="../scripts/jquery-1.2.1.js">  
        </script>  
        <script type="text/javascript">  
          var $ = 'Hi!';  
          jQuery(function(){  
            alert('$ = '+ $);//这里的 $ 为 Hi!,把它变回jquery的符号:jQuery(function($){...}/这样就可以了  
            //alert(jQuery)  
    
          });  
          jQuery(function($){  
            //------------遍历数组 .each的使用-------------  
            var anArray = ['one','two','three'];  
            $.each(anArray,function(n,value) {  
                //do something here  
                //alert(n+' '+value);  
            });  
            var anObject = {one:1, two:2, three:3};  
            $.each(anObject,function(name,value) {  
                //do something here  
                //alert(name+' '+value);  
            });  
    
            //-----------过滤数组 .grep的使用------------  
            var originalArray =[99,101,103];  
           
            var bigNumbers = $.grep(originalArray,'a>100');//第2种写法,还可以用正则表达式来过滤  
            $.each(bigNumbers,function(n,value) {  
                //do something here  
                //alert(n+' '+value);  
            });  
    
            //------------转换数组 .map的使用------------  
            var strings = ['1','2','3','4','S','K','6'];  
            var values = $.map(strings,function(value){  
                var result = new Number(value);  
                return isNaN(result) ? null : result;//如果result不是数字则 返回null(返回null在这里相当于不返回)  
            });  
            $.each(values,function(n,value) {  
                //do something here  
                //alert(value);  
            });  
    
            var characters = $.map(  
                ['this','that','other thing'],  
            function(value){return value.split('');}//分离字符串用返回给characters  
            );  
            //alert(characters.length);  
    
            //------------.inArray(value,array)的使用------------返回value在array下标的位置,如果value不在array中则返回-1  
            var index = $.inArray(2,[1,2,3,4,5]);  
            //alert(index);  
    
            //------------makeArray(obj)的使用------------将类数组对象转换为数组对象。  
            var arr = jQuery.makeArray(document.getElementsByTagName_r("div"));  
            //arr.reverse(); // 使用数组翻转函数   
            $.each(arr,function(n,value) {  
                //do something here  
                //alert(n+' '+value);  
                //alert(value.html());  
            });  
            var arr2 =$.unique(document.getElementsByTagName_r("div")); //获得唯一的对象,看API,说得很模
    糊,http://docs.jquery.com/Utilities/jQuery.unique  
            alert();  
            $.each(arr2,function(n,value) {  
                //do something here  
                alert(n+' '+value);  
            });  
          });  
        </script>  
    </head>  
    <body>  
        <div>First</div><div>Second</div><div>Third</div><div>Fourth</div><div>Fourth</div>  
    </body>  
    </html>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
        <title>Hi!</title>
        <script type="text/javascript" src="../scripts/jquery-1.2.1.js">
        </script>
        <script type="text/javascript">
          var $ = 'Hi!';
          jQuery(function(){
            alert('$ = '+ $);//这里的 $ 为 Hi!,把它变回jquery的符号:jQuery(function($){...}/这样就可以了
       //alert(jQuery)
          });
       jQuery(function($){
       //------------遍历数组 .each的使用-------------
       var anArray = ['one','two','three'];
       $.each(anArray,function(n,value) {
        //do something here
        //alert(n+' '+value);
       });
       var anObject = {one:1, two:2, three:3};
       $.each(anObject,function(name,value) {
        //do something here
        //alert(name+' '+value);
       });
       //-----------过滤数组 .grep的使用------------
       var originalArray =[99,101,103];
      
       var bigNumbers = $.grep(originalArray,'a>100');//第2种写法,还可以用正则表达式来过滤
       $.each(bigNumbers,function(n,value) {
        //do something here
        //alert(n+' '+value);
       });
       //------------转换数组 .map的使用------------
       var strings = ['1','2','3','4','S','K','6'];
       var values = $.map(strings,function(value){
        var result = new Number(value);
        return isNaN(result) ? null : result;//如果result不是数字则 返回null(返回null在这里相当于不返回)
       });
       $.each(values,function(n,value) {
        //do something here
        //alert(value);
       });
       var characters = $.map(
        ['this','that','other thing'],
       function(value){return value.split('');}//分离字符串用返回给characters
       );
       //alert(characters.length);
       //------------.inArray(value,array)的使用------------返回value在array下标的位置,如果value不在array中则返回
    -1
       var index = $.inArray(2,[1,2,3,4,5]);
       //alert(index);
       //------------makeArray(obj)的使用------------将类数组对象转换为数组对象。
       var arr = jQuery.makeArray(document.getElementsByTagName_r("div"));
       //arr.reverse(); // 使用数组翻转函数
       $.each(arr,function(n,value) {
        //do something here
        //alert(n+' '+value);
        //alert(value.html());
       });
       var arr2 =$.unique(document.getElementsByTagName_r("div")); //获得唯一的对象,看API,说得很模
    糊,http://docs.jquery.com/Utilities/jQuery.unique
       alert();
       $.each(arr2,function(n,value) {
        //do something here
        alert(n+' '+value);
       });
       });
        </script>
    </head>
    <body>
    <div>First</div><div>Second</div><div>Third</div><div>Fourth</div><div>Fourth</div>
    </body>
    </html>



  • 相关阅读:
    11.菜单(一)
    线性表之顺序存储详解
    SVN 撤回已提交的代码
    线性表1
    顶层父类
    异常类之派生类
    new和delete重载
    异常类之基类
    Qt中多线程问题
    智能指针实例
  • 原文地址:https://www.cnblogs.com/riasky/p/3473158.html
Copyright © 2011-2022 走看看