jQuery更新文本字段无法正常工作

时间:2016-04-02 19:02:18

标签: javascript jquery html5 cordova

我试图通过在文本字段中输入数量和成本来动态计算成本,进行数学计算并将值返回到<label>。我将结果发送到控制台,一切都很好,但是当我将值更新为<label>元素时,它会显示:&#34; [object Window]&#34;。代码如下:

function updateCost(){
    var numUF = $("#numUF").val();
    var costUF = $("#costUF").val();
    var numDBT = $("#numDBT").val();
    var costDBT = $("#costDBT").val();
    var numDMT = $("#numDMT").val();
    var costDMT = $("#costDMT").val();
    var numTr = $("#numTr").val();
    var costTr = $("#costTr").val();

    var valorCotiza = (numUF * costUF) + (numDBT * costDBT) + (numDMT * costDMT) + (numTr * costTr);
    $("#valorCotiza").text("$ " + toString(valorCotiza));
    console.log(valorCotiza);
}

这部分的HTML部分是

<div class="item">
    <label class="H5">Valor total cotización:</label><br />
    <label id="valorCotiza">$</label>
    <br /><br />
    <label class="H5">Valor IVA: (16%)</label><br />
    <label id="valorIVA">$</label>
</div>

关于可能出现什么问题的任何想法? BTW,它是一个PhoneGap项目,我使用的是jQuery。

3 个答案:

答案 0 :(得分:1)

这个toString(valorCotiza)特定代码在常规环境中等于window.toString(valorCotiza)。这将返回"[object Window]"。因此,以下代码足以完成您的任务。

$("#valorCotiza").text("$ " + valorCotiza);

简单的连接就足以将数字更改为字符串。无需明确地做到这一点。如果您仍想以这种方式执行此操作,请使用Number.prototype.toString()。这可以像,

一样使用
$("#valorCotiza").text("$ " + valorCotiza.toString());

答案 1 :(得分:0)

使用String(valorCotiza)。使用toString()给出窗口的字符串表示(正如您所见)。

答案 2 :(得分:0)

您可以使用

valorCotiza.toString()

将数字转换为字符串。如果在不使用字符串进行concat操作时需要字符串,则必须使用它。特别是在您的情况下,您的连接操作(&#34; $&#34; + valorCotiza)应该这样做。