工做总结(一)

主要记录一些工做上碰到的问题,不按期跟新

一、由于工做调接口,后端返回字段常常变化,今天遇到这样一个问题。后端

// 判断返回 arr ,若是是 null 或 [] 空数组就显示''
// 假设返回字段是 usersName
// 初始想法,经过if语句,进行判断,确认返回值。
var userName = [];
var str = '';
if (userName) {//空数组为true
    alert(123);
    str = userName.join();
}
// 这样能够实现需求,可是突然想到一个细节,这个方法只能判断null为false,可是判断userName 空数组则为ture。
// 若是不是简单的执行join()方法,逻辑上确定会报错。其原理是由于,null是对象空指针,布尔值为false
// 而[]空数组是一个数组对象,布尔值为ture,因此会执行if里边的语句。

二、JS对象不能够直接调用JQ方法数组

<!-- 使用JQ方法时,注意将DOM对象转换为JQ对象 -->
<!-- 好比,使用jQ判断点击对象是否包含某一属性值。-->

<span class="cs cs-one" onclick="edit(this)">点击我</span>
<script>
    function edit(obj) {
        // 会报错
        if ( obj.hasClass('cs-one') ) {  
            alert('ok');
        }
    }
</script>
<!-- 执行语句会报错,hasClass not function。 -->
<!-- 由于hasClass是JQ方法,而经过jS的DOM对象调用方法就会报错。 -->
<!-- 须要将JS对象转成JQ对象 $(obj) -->
<script>
    function edit(obj) {
        // 正确
        if ( $(obj).hasClass('cs-one') ) {
            alert('ok');
        }
    }
</script>
<!-- 问题:JS对象能够直接调用JQ方法吗? -->

三、如何获取href连接中字符对应的值this

var id = GetArgsFromHref(href,"id");//获取id
function GetArgsFromHref(sHref, sArgName){
    var args = sHref.split("?");//将连接切分红数组
    var retval = "";//须要返回的字符串
  
    if(args[0] == sHref){//参数为空
         return retval;//返回空字符串,无需作任何处理
    }  
    var str = args[1];//获取?后边字符串
    args = str.split("&");//将字符串以&切分红数组
    for(var i = 0; i < args.length; i ++){//遍历切分后的数组
        str = args[i];
        var arg = str.split("=");//切分数组中的字符串
        if(arg.length <= 1) continue;//没有=后边的值跳过
        if(arg[0] == sArgName) retval = arg[1];//获取到对应的值
    }
    return retval;//返回对应的值
}
相关文章
相关标签/搜索