检测对象是否是一个空的对象

在项目中碰到一个问题

  1. 检测一组checkbox是否被选中

  2. 如果被选中,返回它对应的name值

  3. 如果一个都没选中,返回一个false

我想到的解决方案

var checkList_box = function(param,output){

  var $boolean,$result = {};

  if(param){ 

    if(typeof param === 'string'){

      $boolean = $(param).prop('checked') ? true : false;

       $result['name_'+param] = $(param).attr('name')

      } 

    else if(typeof param === 'object'){

        $.each(param,function(i,n){

          if($(n).prop('checked')){

            $boolean = true;

            $result['name_'+n] = $(n).attr('name');

          }

        })

        //注意此外需判断对象是否为空的对象

         //第一种不兼容的方法   先写出来的,最后发现不兼容IE6 IE7

        //JSON对象在IE8以下不支持

        if(JSON.stringify(result) === '{}'){

           $boolean = false;

            return false

        }

        //第二种方法,采用枚举对象的方法

        $boolean = checkObj(result)

        if($boolean){       

          return result

        }else{

          return false 

       }

      }    

    }else{

       return false

    }

  return result        

}

其中 checkObj()方法如下

var checkObj = function(param){



  if(typeof param !== ‘object’ || param === ‘null’){

       return false

   }



  else{



    var k =0;



    for (var  i in param){



        if(param.hasOwnProperty(n)){

               k++



        }



    }



    return !!k



}



}

 

完毕 !!

写完突然发现自已好傻,可以用jquery 中的选择器来做同样的事情

 

var arr = $(':checkbox")

var result = {}

$.each(arr,function(i,n){

  if($(this).prop("checked")){

   result['name'+n] = $(this).attr('name')

 }

  return result

})

  就权当留作一个教训吧!!!

你可能感兴趣的:(对象)