工作总结(一)

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

1、因为工作调接口,后端返回字段经常变化,今天遇到这样一个问题。

// 判断返回 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里边的语句。

2、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方法吗? -->

3、如何获取href链接中字符对应的值

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;//返回对应的值
}
    原文作者:李佳臣
    原文地址: https://segmentfault.com/a/1190000018480133
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞