jQuery更新文本字段不起作用

jQuery update text field not working

本文关键字:不起作用 字段 文本 更新 jQuery      更新时间:2023-11-11

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

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>

有什么可能出错的想法吗?顺便说一句,这是一个PhoneGap项目,我正在使用jQuery。

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

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

一个简单的串联就足以将一个数字更改为字符串。无需明确执行。如果您仍然想以这种方式进行操作,请使用Number.prototype.toString()。可以像一样使用

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

使用String(valorCotiza)。使用toString()可以得到窗口的String表示(如您所见)。

您可以使用

valorCotiza.toString()

以获取转换为字符串的数字。如果在不对字符串执行concat操作时需要字符串,则必须使用它。特别是在您的情况下,您的级联操作("$"+valorCotiza)应该这样做。