2011-11-11 157 views
2

我試圖爲我的用途創建一個小函數,這是假設獲取所選元素的文本。如果元素具有Math in,那麼我的函數將假設執行數學運算並附加到您選擇的元素的答案。自定義操作函數

我很簡單的功能是:

function op2(id, end){ 
     var he = $(id).text(); 
     $(end).html(he); 
} 

這將這樣來使用:

function la() { 
op2('#default', '#here'); 
} 

用下面的HTML:

<div id="default">10+3</div> 
<div onclick="la();">Test</div> 
<div id="here"></div> 

這是問題,當其假設要添加它正在做的是將10 + 3添加到元素#here而不是顯示13

我知道問題在於瀏覽器將#default附加到#here這樣的文字,'10+3',但我不知道如何改變它。

這裏是demo

+1

您必須編寫自己的代碼來檢查'.text()'結果,在其中找到數學表達式,評估這些表達式並將結果文本放入輸出中。 jQuery不會爲你做那部分。 – jfriend00

回答

4

對於這個簡單的情況下在所述第一元素的含量,使用eval()函數。看到修改版本的鏈接:http://jsfiddle.net/4DF3k/

+0

+1和最佳答案!真棒,酷!謝謝 – Shawn31313

1

你的問題是你的變量的數據類型是字符串,而不是整數。如果你想使用+算術運算,而不是字符串附加操作,必須投你的變量爲整數或浮點數

http://www.javascripter.net/faq/convert2.htm#parseInt

這個鏈接會告訴你更多地瞭解它。

只需使用JavaScript函數parseInt函數和parseFloat

0

看看jQuery的計算插件here

對於更復雜的數學公式和不同的操作,它應該給你一個很好的起點來評估選擇器的$.text()

我希望這有助於!