我遇到以下问题:
function loadContent(id) {
$("#featuredDiv").load("featuredDiv.php?list="+id);
);
}
当打开ID为21012011的URL时,一切正常:
javascript:loadContent(28012011)
但是当04022011是id(javascript:loadContent(28012011)
)时,它似乎将数字更改为1057801.
我需要准确传递的数字,就像从数据库中读取页面一样。 有谁知道我做错了什么?
非常感谢提前!
答案 0 :(得分:5)
这是因为04022011
被Javascript解析为octal number。
始终将ID包含在引号中,它将起作用。
答案 1 :(得分:3)
问题是十进制和八进制表示法之间的区别。
由于历史原因,与现代程序员的实用程序无关,以0
开头并且不包含8
或9
字符的数字序列被解释为{ {3}}。这意味着它被视为在base-8而不是base-10。
八进制表示法中的八进制04022011
为1057801
。
您可以通过将数字包装在引号中来解决此问题(例如javascript:loadContent("28012011")
):这会导致它被解释为字符串并直接传递到您的网址。
然而您似乎正在使用<a href="javascript:...">
个链接。这是糟糕练习。查看jQuery简介(例如octal number),了解将操作绑定到元素和事件的最佳方法。