Javascript 获取html用户生成的输入不起作用

Javascript 获取html用户生成的输入不起作用,javascript,jquery,html,Javascript,Jquery,Html,我有一个数量选择器,用户点击加号或减号来增加或减少数量 函数initQuantity(){ 如果($('.plus').length&$('.plus').length){ var plus=$('.plus'); var减号=$('减号'); var值=$(“#数量#u值”); plus.on('click',function(){ var x=parseInt(value.text()); 文本(x+1); }); 减去。on('单击',函数(){ var x=parseInt(value

我有一个数量选择器,用户点击加号或减号来增加或减少数量

函数initQuantity(){
如果($('.plus').length&$('.plus').length){
var plus=$('.plus');
var减号=$('减号');
var值=$(“#数量#u值”);
plus.on('click',function(){
var x=parseInt(value.text());
文本(x+1);
});
减去。on('单击',函数(){
var x=parseInt(value.text());
如果(x>1){
文本(x-1);
}
});
}
}
initQuantity()

数量:
1.

它返回未定义,因为span元素没有您试图访问的value属性。以下内容应适用于现代浏览器

var qty = document.getElementById("quantity_value").textContent;

这类似于

您已经在使用jQuery,因此请利用它而不是使用
document.getElementById(“quantity\u value”)
您可以使用jQuery选择器

正如@sinisake所指出的,您必须访问文本内容,而不是值,因为
span
元素没有值属性:

var qty = $('#quantity_value').text();

您已在中具有数量值

var x = parseInt(value.text());
您可以在更新之前应用验证

value.text(x + 1);
像这样

if(x <= MAXIMUM_VALUE){
    value.text(x + 1);
}

如果(x span没有'value'属性,请使用textContent。如果您控制span中的数字,则不需要parseInt。或者,正如他们在其他地方使用jQuery一样,
$(“#quantity_value”).text();
同意,很好。无需再次从HTML获取它。事实上,我可以将变量定义为“1”并首先将其插入HTML中。