2011-08-13 7 views
1

答えは簡単ですが、私はこれで数時間を無駄にしたことを誓っています。div要素のプロパティを取得するためにparseIntを使用すると常にNANを返します

div要素の位置を通常の 'javascriptを使用して変更しようとしています。最初に、要素の最初の上部および左のプロパティ値を整数として必要とします。私はparseInt(element.style.top、10)を使用しようとしています。

問題は私が最初に(デフォルト)element.style.topと左の値は常にNaNを返すことです。値を解析しようとする前に上と左の値を指定すると、正常に動作します...値がまだ指定されていない状況に対処できるようにしたいと考えています...

助けてください

+0

いくつかのコードを表示してください。 – yoda

+0

これらのCSS値は通常、単純な数字ではありません。すべてが(明示的または暗黙の)タイプ(em、pixels、%など)を持っています。 – Oded

+0

私はparseInt()がアルファ文字に先行する数字を返すと信じています...だから、parseInt(100px)は100を返します。いいえ? – SharpBarb

答えて

2

CSSのプロパティ値が "auto"なので、値が "NaN"になることがあります。それはIEでたくさん起こります。

+0

FF4でこれを試してみましょう。私はelement.style.topの初期値を出力しようとしました(値を解析せず、something.innerhtmlを使用しています)、初期値は完全に空白です。 – SharpBarb

+0

まあ、空の文字列も "Not a Number"です。あなたがしようとすることができるのは '~~ element.style.top'です。空の文字列と' null'をゼロ(数値)に変換します。 – Pointy

1

element.offsetTopまたはelement.offsetLeftリターン整数(解析不要)、試してみましたか? element.style.topは、auto,3em20%など多くのものになります。 autoの場合parseIntはNaNを返し、それ以外の場合は数値を返しますが、必要な数は返しません。

+0

オフセット関数はstyle.topやstyle.leftとは異なる値を返します。私は境界と余白を考慮に入れていると思いますが、他はありません – SharpBarb

+0

@SharpBarb http://www.quirksmode.org/js/findpos.htmlあなたをさらに助けるかもしれませんか? – KooiInc

0

(CSSなどで設定された)スタイルプロパティを照会しています。ただし、要素の実際の位置が必要です。 Javascriptでそれを行う方法については、hereを見てください。

関連する問題