通过计算实时传递div(数字)内的文本?

时间:2012-10-19 21:14:32

标签: javascript jquery

由于缺少更好的标题,我希望以我的jsfiddle为例,并将其转换为拉出div中的数字(它始终是一个数字):

<div class="output" id="i1">100</div>

并通过公式传递该数字,将其实时吐出到 p 标签(不需要是p标签,可能是另一个div。

<p>200</p> or <div id="i2">200</div>

上面的200,通过添加div id#i1的原始值加上100来计算。现在,小提示显示当您输入输入值时,它会吐出实时计算。

所以问题是,在不使用输入值的情况下,该函数会将数字数据从DIV标记中提取出来,通过函数运行它,然后将其吐回到段落标记中?我认为它的大部分内容都是完整的功能,但不能完全弄清楚DIV文本的提取。

我看过的一些帖子已经包含this one about real time inputsthis one on calculations and displaying和其他一些帖子。

This fiddle为我展示了解决方案。它比我以前简单得多。下面给出了一个关于监听器插件的解决方案,它看起来非常好,但对于我需要的方式来说有点过分。

3 个答案:

答案 0 :(得分:0)

您可以考虑在此处使用观察者模式。

查看此内容以获取更多信息。 http://canjs.us/#can_observe

答案 1 :(得分:0)

从div中获取文本,然后将其解析为float,使用:

parseFloat(document.getElementById('i1').childNodes[0].nodeValue)

答案 2 :(得分:0)

This fiddle为我展示了解决方案。它比我以前简单得多。下面给出了一个关于监听器插件的解决方案,它看起来非常好,但对于我需要的方式来说有点过分。

<form id="vcForm">
    <div id="i1">100</div>
    <p></p>
</form>

$("#i1").keyup(function() {
    var input1 = parseFloat($("#i1").text(),10);
    var input2 = 100;
    total1 = parseFloat(input1) + parseFloat(input2);
    $("p").text(total1);
}).keyup()​

第一个DIV中的值将是动态的(通过滑块更改)。当然,当我在功能上扩展它时,我们会看到实时更新,但对于我原来的问题,我们回答了它。