在JavaScriptPlus操作是附加的,而不是做數學
100px320
這是怎麼回事?
parent.height()
等於160,所以看起來好像parent.css("top")
是一個字符串,JS只是簡單地將一些字符添加到字符串中,而不是進行數學計算。
爲什麼它不工作,我該如何正確地做到這一點?
在JavaScriptPlus操作是附加的,而不是做數學
100px320
這是怎麼回事?
parent.height()
等於160,所以看起來好像parent.css("top")
是一個字符串,JS只是簡單地將一些字符添加到字符串中,而不是進行數學計算。
爲什麼它不工作,我該如何正確地做到這一點?
+
運算符在Javascript中「超載」。
真的發生了什麼事是沒有在Javascript中鍵入,所以+
運營商正試圖強迫你的價值觀是+
-able。
你說得對,.css("top")
是一個字符串:.css
方法將返回究竟是在CSS,你最好有單位申報在你的CSS。
當Javascript在不同類型的兩個變量之間遇到+
時,它盡其所能,並將整數強制轉換爲字符串,所以不會失去任何精度。
你可以做這樣的事情來解決這個問題:
parseInt(parent.css("top")) - - parent.height() * 2;
這有兩個漁獲:
parseInt函數採用第一個整數是看到並返回。 100px
將返回100
,但是也將返回100,400。小心。
- -
將強制Javascript執行算術運算,因爲您要求它從負數中減去一個數字,這與加法相同。但是,運營商-
沒有任何歧義,因此它將運行或生成NaN
。
您需要更改該字符串一個數字 - 你可以用parseInt
做到這一點:
parseInt(parent.css("top"),10) + parent.height() * 2
回答過的問題,謝謝;) – Piotrek