left = left == 0? "0px":left.substring(left.length - 2,left.length) == 'px'? left:left + 'px';

解决方案 »

  1.   

     left = (left == 0? "0px":(left.substring(left.length - 2,left.length) == 'px'? left:left + 'px')); 
      

  2.   

    断行+缩进,应该就好理解了。left = 
    left == 0 ?
    "0px"
    :
    left.substring(left.length - 2,left.length) == 'px'?
    left
    :
    left + 'px';
      

  3.   


    //先说几个常识性知识
    //表达式 (expr1) ? (expr2) : (expr3)
    //在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
    // js中 = 号 表示赋值。 js中 == 表示判断左右两边是否相等
    //js substring 为截取支付串 ,具体可以看  http://www.w3school.com.cn/jsref/jsref_substring.asp
    //逐行解读
     left =
               left == 0? "0px":
                                  left.substring(left.length - 2,left.length) == 'px'? left:left + 'px';
    //按照三元表达式,当left为0 的时候,这一串表达式值为0px。当left不等于0的时候, 为 折行后的这一串表达式 “left.substring(left.length - 2,left.length) == 'px'? left:left + 'px';”//再来拆解这个
    left.substring(left.length - 2,left.length) == 'px'? left:
                                                                                           left + 'px';//同理按照三元表达式  left.substring(left.length - 2,left.length) == 'px'  如果left的最后俩支付串是px的话,那么 返回left,如果left 最后俩支付串不是px的话, 返回 left+'px' 这个拼接起来的支付串。
    所以我综合一下这个两重三元表达式要干嘛:
    1.当left为0 的时候,返回: 0px。
    2. 当left不等于0的时候
        2.1 当left最后俩字符串为'px' 时候,返回left原值
        2.2 当left最后俩支付串不为'px'时间,返回  left+'px' 这个拼接起来的字符串。