Javascript 解析函数的值时出现空响应,卡在函数上。我有什么遗漏吗?

Javascript 解析函数的值时出现空响应,卡在函数上。我有什么遗漏吗?,javascript,jquery,Javascript,Jquery,我正在开发一个销售点购物车模块来提高我的javascript技能。我目前正试图通过乘以产品的价格和所需数量来计算产品的总量。我通过一个json文件加载产品,到目前为止还不错。但是我在这个javaScript函数中遇到了一个问题。数量是通过HTML加载的,如下所示 function AddToCart(food){ const row = document.createElement('tr'); row.innerHTML = ` <tr data-price='1

我正在开发一个销售点购物车模块来提高我的javascript技能。我目前正试图通过乘以产品的价格和所需数量来计算产品的总量。我通过一个json文件加载产品,到目前为止还不错。但是我在这个javaScript函数中遇到了一个问题。数量是通过HTML加载的,如下所示

function AddToCart(food){
    const row = document.createElement('tr');
    row.innerHTML = `
    <tr data-price='100' data-quantity='5' id='${food.FoodID}'>
    <td>
        ${food.FoodName}
    </td>
     <td id = "PriceFood">
        ${food.FoodPrice}
    </td>
    <td>
        **<input class='' id="Quantity" type="number" min="1" max="9" step="1" value="1">**
    </td>
    <td id="ProductTotal">
        **${getTotal(food.FoodPrice, document.getElementById('#Quantity'))}**
    </td>
     <td>
        <a href="#" class="remove" data-id="${food.FoodID}">X</a>
    </td>
    </tr>
    `
    ;
    cart_content.appendChild(row);

}


    function getTotal(price, qty){
        console.log(price, qty)
        return Number(price) * qty;
    }
功能添加到零件(食品){
const row=document.createElement('tr');
row.innerHTML=`
${food.FoodName}
${food.FoodPrice}
****
**${getTotal(food.FoodPrice,document.getElementById('#Quantity'))}**
`
;
cart_content.appendChild(行);
}
函数getTotal(价格、数量){
控制台日志(价格、数量)
退货编号(价格)*数量;
}
通过在控制台中运行上述结果。console.log(价格、数量)返回以下内容:-

100零

正在分析价格,但它返回的数量为空。 我真的不能确定它为什么返回空值的问题。 非常感谢您的帮助..谢谢:)

.getElementById()
就是这样做的,通过它的
id
获取一个元素。因此,您不必像在此处所做的那样,在
id
前面加上
#

document.getElementById('#Quantity')
删除
#
以正确获取数量元素


然后,要获取该元素的值,您需要使用
qty.value
,而不仅仅是
qty

getElementById
,假设您提供的是DOM节点的ID,因此不需要在它前面加

这样,您将只向函数返回DOM节点—您需要返回输入值,如下所示:


**${getTotal(food.FoodPrice,document.getElementById('Quantity').value)}**

最好返回元素,而不是元素的属性。这样,您就可以使用返回元素的多个属性,而无需再次查询元素的DOM。我同意这一点,最好指出这是一个最佳实践。尽管
getTotal()
我认为这是一个非常显式的函数,只需做一些简单的数学运算。因此,您不想使用来自DOM节点的更多信息似乎是明智的,如果它只接受两个数字作为参数,您可以在JS中的其他地方重复使用它。谢谢@Derrickjamal-请随意标记为已接受的答案,但是Scott Marcus的答案也将是正确的,他在我前面回答,所以…:)谢谢这是一个非常重要的错误。我没有注意到这一点。尽管我仍然遇到同样的问题。@Derrickjamal,但您没有显示的其他代码肯定还有其他问题。请更新您的问题,包括相关的HTML和JavaScript,以便我们可以复制您的问题。