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

在项目中碰到一个问题

  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
})

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

posted @ 2013-05-16 22:44  独角xi  阅读(271)  评论(0编辑  收藏  举报