2011-11-11 125 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()

我希望这有助于!