javascript - jQuery中,数字变量+1前是整形,+1后原变量变成了字符串,这是怎么回事?
PHP中文网
PHP中文网 2017-04-10 15:42:53
[JavaScript讨论组]
<style>
    span{
        background:yellow;margin-left: 5px;border:1px solid gray; 
    }
    #big{
        width:250px;height:150px;border:1px solid gray; 
    }
    .click{
        background:red; 
    }
    .sheng{
        width:250px;height:100px;background:orange;margin-top:1px;   
    }
</style>

<script>
    $(function(){
    var length=$("p").length;
   for(var i=2;i<length;i++){
       $("p").eq(i).css("display","none");
   } 
   var sl=$("span").length;
   for(var i=0;i<sl;i++){
       $("span").eq(i).attr("index",i);
       $("span").eq(i).click(function(){
           for(var j=0;j<sl;j++){
         $("p").eq(j+1).css("display","none");
         $("span").eq(j).css("background","orange");
        }  
  
        $(this).css("background","red");
      
     var num=$(this).attr("index");    $("p").eq(num).css({"display":"block","background":"red"});  

        //为什么上一行的eq(num)里的num是整形
        //但num  +1后就不能正常显示,当num是1的时候,结果就变成了11,这是怎么回事?
       })
   }



    })
</script>

<body>
        <p id="big">
            <p>
            <span>北京</span>
            <span>广州</span>
            <span>上海</span>
            <span>深圳</span>
            <span>天津</span></p>
            <p class="sheng">北京北京北京v111111111111111</p>
            <p class="sheng">广州广州广州广州广州2222</p>
            <p class="sheng">上海上海上海上海上海</p>
            <p class="sheng">深圳深圳深圳深圳深圳</p>
            <p class="sheng">天津天津天津天津天津</p>
        </p>
    </body>
PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
阿神

attr 取出来的并不是数字而是字符串,因此要转换:

var num=parseInt($(this).attr("index"))

否则,加号会被当作字符串连接

天蓬老师

core.js

jQuery.fn = jQuery.prototype = {
    // ...

    eq: function( i ) {
        var len = this.length,
            j = +i + ( i < 0 ? len : 0 ); // 这行重点
        return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
    }

    // ...
};

+i是把i转换成整数,不然就变成字符串相加了.
那为什么后面的i不用转?

使用关系操作符时,如果一个操作数是数值,则将另一个操作数转换为一个数值,然后在比较.

所以eq传入字符串也是可以的。。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号