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

Met*_*uru 4 javascript jquery

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

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

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

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

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

Dav*_*mas 8

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

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

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