1

私は何か間違ったことをしているかもしれないことを知っています。なぜ私がオブジェクトとしてトップになっているのか、誰か指摘してもらえますか??

$(document).ready(function(){
    topwithpx='0px';
    alert(topwithpx);
    topstr=topwithpx.substr(0,topwithpx.length-2);
    alert(topstr);
    top=parseInt(topstr);
    alert(top);
});​

http://jsfiddle.net/kjMs9/

ありがとうございました: 'top' は予約済みのキーワード (Window.top) です。私の悪い。一次回答受付中。迅速な回答のためにすべてに+1。

4

7 に答える 7

9

それは本質的window.topWindow オブジェクトだからです。代わりに使用var topして、ローカル変数とグローバル (=windowオブジェクトのプロパティ) 変数を混在させないようにします。

実際、var関数変数を一般的なルーチンのようなものにして、将来同様の問題が発生するのを防ぎます。)

于 2012-08-23T14:13:25.843 に答える
4

substrを削除するために使用する必要はありませんpxparseIntあなたのためにこれを行います:

topwithpx='0px';
var top = parseInt(topwithpx);
alert(top);  //alerts "0"

http://jsfiddle.net/kjMs9/3/

于 2012-08-23T14:14:02.433 に答える
3

window.topDOM 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);
});​
于 2012-08-23T14:13:45.663 に答える
3

topwindowオブジェクト ( MDN )のデフォルトのプロパティです。変数に別の名前を付けます。

于 2012-08-23T14:13:51.873 に答える
2

topの読み取り専用プロパティですwindow(少なくとも Mozillaの場合、おそらく他のすべての大きなブラウザも同様です)。

topのような別のものに変更するだけですtopInt。また、var変数を宣言するために使用します (例: をvar topInt = parseInt(...)使用しない場合varwindowデフォルトでプロパティが使用されるため、読み取り専用の動作になります。

ちなみに、console.log代わりに使用する方が少しいいでしょうalert

于 2012-08-23T14:14:11.397 に答える
1

topjavascript windowプロパティです。これを行うことで、topを変数として使用できます

var top = ...
于 2012-08-23T14:15:11.037 に答える
1
$(document).ready(function(){
    topwithpx='0px';
    alert(topwithpx);
    topstr=topwithpx.substr(0,topwithpx.length-2);
    alert(topstr);
   var top=parseInt(topstr);
    alert(top);
});

変数の宣言がありません

于 2012-08-23T14:18:14.250 に答える