我知道我可能做错了什么。任何人都可以请指出为什么我作为对象获得顶级?
$(document).ready(function(){
topwithpx='0px';
alert(topwithpx);
topstr=topwithpx.substr(0,topwithpx.length-2);
alert(topstr);
top=parseInt(topstr);
alert(top);
});
全部谢谢:'top'是保留关键字(Window.top)。我的错。接受第一个ans。快速回复所有+1。
答案 0 :(得分:9)
因为它基本上是window.top
,即Window object。请改用var top
来防止将局部变量与全局(= window
个对象的属性)混合。
事实上,让你的函数变量var
成为常见例程 - 以防止将来遇到类似的问题。 )
答案 1 :(得分:4)
您无需使用substr
删除px
。 parseInt
会为您执行此操作:
topwithpx='0px';
var top = parseInt(topwithpx);
alert(top); //alerts "0"
答案 2 :(得分:3)
window.top
是DOM 0的一部分,无法分配号码。
避免使用全局变量。使用var
$(document).ready(function(){
var topwithpx, topstr, top;
topwithpx='0px';
alert(topwithpx);
topstr=topwithpx.substr(0,topwithpx.length-2);
alert(topstr);
top=parseInt(topstr);
alert(top);
});
答案 3 :(得分:3)
top
是window
对象(MDN)的默认属性。将变量命名为其他内容。
答案 4 :(得分:2)
top
是window
(at least for Mozilla的只读属性,但也可能是所有其他大型浏览器。)
只需将top
更改为topInt
之类的其他内容即可。另外,使用var
声明变量(例如var topInt = parseInt(...)
。如果不使用var
,则默认使用window
属性,因此只读行为
顺便说一下,使用console.log
代替alert
答案 5 :(得分:1)
top
是javascript window
属性。
您可以通过执行此操作将top用作变量
var top = ...
答案 6 :(得分:1)
$(document).ready(function(){
topwithpx='0px';
alert(topwithpx);
topstr=topwithpx.substr(0,topwithpx.length-2);
alert(topstr);
var top=parseInt(topstr);
alert(top);
});
你错过了变量声明