为什么.index()在此语句中作为数字解析而.parent()。index()作为字符串解析?

时间:2011-11-30 02:07:33

标签: javascript jquery

这是代码,它引用了TD,“farmland”是表的id:

$("#farmland td").click(function(){
        $("#console").html($(this).index() + 1 + ", " + $(this).parent().index() + 1);
    });

当我点击一个TD时,我得到1,01或1,11或1,21等...这个数字正在为.index()正确添加但是对于.parent()。index()它正在追加1好像是一个字符串!

认为这是非常好奇的,因为我预计它要么采取一种方式,要么采取另一种方式,而不是两种不同的方式!

我的第一个猜测可能是因为我的+ ", " +正在将其切换为字符串?

4 个答案:

答案 0 :(得分:8)

这是因为JavaScript看到第一个index()调用返回一个数字,它将数字加1,然后你将它与一个字符串组合,所以它将数字连接到字符串

另外,无论字符串如何,都要使用括号来隔离字符串中的数字:

$("#farmland td").click(function(){
        $("#console").html(($(this).index() + 1) + ", " + ($(this).parent().index() + 1));
    });

答案 1 :(得分:0)

每当你想强制对var进行数字评估时,你可以使用1 * your_var这样的数字,它将被解释为数字

答案 2 :(得分:0)

它被称为从左到右的相关性。

答案 3 :(得分:0)

当有更好的工具可用时,连接有点难看。怎么样:

$("#farmland td").click(function(){
    $("#console").html([$(this).index() + 1, $(this).parent().index() + 1].join(", "));
});