仅复制div中的数值

时间:2015-11-09 10:12:26

标签: javascript html

我试图点击按钮时只能将数值复制到文本框中而不是字符。有人可以帮帮我吗?

HTML

<div class="more">
    <div id="dvDistance">
        10 kms
    </div>
    <input type="number" id="firstNumber" />
    <script>
        function copyText() {
            var output = document.getElementById("dvDistance").innerHTML;
            document.getElementById("firstNumber").value = output;
        }
    </script>
    <input type="button" onClick="copyText();" Value="Multiply" />
    </p>
</div>

3 个答案:

答案 0 :(得分:1)

最简单的假设只有前导空格

document.getElementById("firstNumber").value = parseInt(output,10);

因为parseInt会找到该号码并忽略其后的任何内容

&#13;
&#13;
function copyText() {
  var output = document.getElementById("dvDistance").innerHTML;
  document.getElementById("firstNumber").value = parseInt(output, 10);
}
&#13;
<div class="more">
  <div id="dvDistance">
    10 kms
  </div>
  <input type="number" id="firstNumber" />
  <input type="button" onClick="copyText();" Value="Multiply" />
  </p>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

用户parseInt仅复制数值。

var a = "10 a";
document.getElementById('result').innerHTML = parseInt(a);
<p id="result"></p>

答案 2 :(得分:0)

如果您只期望值中有空格,则可以使用trim删除前导和尾随空格。

output.trim()

您可以使用正则表达式\d+从字符串中提取数值。 \d+将匹配一个或多个数字。

output.match(/\d+/)[0];

或者,您也可以从字符串

中替换非数字值
output.replace(/\D/g, '');

我建议您使用

  1. Number input

    <input type="number" name="firstNumber" />
    
  2. Pattern attribute

    <input type="text" name="firstNumber" pattern="\d+" />