2012-09-01 54 views
1

我正在忙於編寫一小段代碼,該代碼段應允許跨瀏覽器使用邊框框模型。到目前爲止基本功能正常工作,但我無法獲得保證金的工作。它應該適應可用的空間,但是控制檯返回NaN,我不知道它來自哪裏。Border-left-width在jQuery中返回NaN

Here是一個小提琴。

console.log甚至沒有記錄任何東西,我不知道爲什麼。任何幫助是極大的讚賞。

+0

'parseInt函數($(本)的.css( 「左邊框寬度」),10)',代碼沒有達到'console.log'由於之前的字符串相乘。 –

回答

4

在你擺弄的許多地方你有這樣的模式:

($(this).css("border-left-width") * 2).replace("px", "") 

你試圖執行一個乘法,這導致一個語法錯誤px抹去。它應該是

($(this).css("border-left-width").replace("px", "") * 2) 

其中通過自動類型轉換工作或

(parseInt($(this).css("border-left-width"), 10) * 2) 

哪個解析字符串爲整數,除去後px

如果parseInt遇到字符不是 指定基數中的數字,它將忽略它和所有後續字符並且返回整數值解析到那一點。 parseInt將數字截斷爲 數字爲整數值。前後空格是允許的。

Fiddle

parseInt reference

+0

這確實有用,謝謝! –

0

正因爲如此:

$(this).css("padding-left") 

$(this).css("border-left-width") 

返回包含 「PX」 的字符串,你嘗試用2乘,導致NaN的。您可以通過解析生成的字符串以花車乘,這樣才解決了這個問題:

(parseFloat($(this).css("padding-left")) * 2) 

希望這有助於!

+0

從技術上講,它是導致NaN的字符串中的「px」,parseFloat只是忽略它。 – Neil

+0

是的,它解析所有數字,直到它遇到非數字字符。但它仍然解決了這個問題。 – Logard