JS变量包含一个数字的字符串

时间:2016-02-10 21:54:36

标签: javascript

我有一个函数可以转换HTML元素并将其转换为变量。我不能使用ParseInt()或ParseFloat(),因为它们被设计为使用字符串 我不介意使用像Jquery这样的第三方库。

var myFunction = function() {
  var myopt1 = ("#myopt1").innerHTML;
  var myopt2 = ("#myopt2").innerHTML;
  var result = myopt1 + myopt2;

  document.getElementById("result").innerHTML = result;
};
<span id="myopt1">12</span>+<span id="myotp2">12 = <span id = "result"></span>
<br/>
<button onclick="myFunction()">Do Math

2 个答案:

答案 0 :(得分:1)

您显然对与$config['enable_hooks'] = TRUE; $config['enable_hooks'] = FALSE; 相关的某些内容存在误解。 parseInt()属性返回一个字符串,parseFloat().innerHTML将获取该字符串并将其转换为数字。如果您尝试在两个DOM元素上进行数字匹配,那么这正是您需要做的。

另外,声明:

parseInt()

不起作用。在普通的Javascript中,您可以使用:

parseFloat()

工作片段:

&#13;
&#13;
("#myopt1").innerHTML
&#13;
document.getElementById("myopt1").innerHTML
&#13;
&#13;
&#13;

错误摘要:

  1. var myFunction = function() { var myopt1 = parseFloat(document.getElementById("myopt1").innerHTML); var myopt2 = parseFloat(document.getElementById("myopt2").innerHTML); var result = myopt1 + myopt2; document.getElementById("result").innerHTML = result; };不起作用。 <span id="myopt1">12</span>+<span id="myopt2">12</span> = <span id="result"></span> <br/> <button onclick="myFunction()">Do Math是一个DOM属性,因此您需要先获取DOM元素才能使用它。您可以使用("#myopt1").innerHTML获取ID的HTML元素。
  2. 在对字符串进行数值计算之前,您需要使用.innerHTMLdocument.getElementById()将字符串转换为数字。
  3. parseInt()在您的HTML中被拼错了。
  4. 您的HTML缺少parseFloat()以将第二个数字括在您的span标记中。

答案 1 :(得分:0)

所以,你有多个问题

1)在你的HTML中,&#34; myopt2&#34;被误解为&#34; myotp2&#34;

2)你的myopt2跨度的内部html是&#34; 12 =&#34;不是&#34; 12&#34;

3)您未正确使用jQuery样式文档查询

4)你必须使用parseFloat()或parseInt()将innerHTML转换为数字,以进行加法而不是字符串连接

Here is a working codepen that uses jquery

HTML:

<span id="myopt1">12</span>+<span id="myopt2">12</span> = <span id = "result"></span>


做数学

JS:

var myFunction = function() {
  var myopt1 = parseFloat($("#myopt1").html());
  var myopt2 = parseFloat($("#myopt2").html());
  var result = myopt1 + myopt2;

  $('#result').html(result);
};