将数字变量传递给jQuery .load

时间:2011-02-14 21:23:48

标签: javascript jquery variables

我遇到以下问题:

function loadContent(id) {
     $("#featuredDiv").load("featuredDiv.php?list="+id);
     );
}

当打开ID为21012011的URL时,一切正常:

javascript:loadContent(28012011)

但是当04022011是id(javascript:loadContent(28012011))时,它似乎将数字更改为1057801.

我需要准确传递的数字,就像从数据库中读取页面一样。 有谁知道我做错了什么?

非常感谢提前!

2 个答案:

答案 0 :(得分:5)

这是因为04022011被Javascript解析为octal number

始终将ID包含在引号中,它将起作用。

答案 1 :(得分:3)

问题是十进制和八进制表示法之间的区别。

由于历史原因,与现代程序员的实用程序无关,以0开头并且不包含89字符的数字序列被解释为{ {3}}。这意味着它被视为在base-8而不是base-10。

八进制表示法中的八进制040220111057801

您可以通过将数字包装在引号中来解决此问题(例如javascript:loadContent("28012011")):这会导致它被解释为字符串并直接传递到您的网址。

然而您似乎正在使用<a href="javascript:...">个链接。这是糟糕练习。查看jQuery简介(例如octal number),了解将操作绑定到元素和事件的最佳方法。