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