我有一个包含以下行脚本的问题(顶部现在被注释掉了)。它们在循环中对表单上的文本框进行求和。然而,我得到:'未捕获的类型错误:无法读取未定义的属性'0',当它运行时。如果我注释掉最后一行,取消上面一行的注释,它会工作得很好。
我仍然想保持替换功能,但我不确定如何去做。
total += $(this).text();
//difference and why the previous works, but the below returns null, but if
total += ($(this).all[0].value.replace(/D/g, '')) * 1
编辑:应该提到这是我需要调试和发现这个错误的东西。
.text()
获取或设置元素内的文本。
例如:<p>Hello World</p>
console.log($('p').text())
将返回Hello World
.value()
不是jquery方法,而是使用。val()
.val()
用于获取或设置输入字段的值。
例如<input type="text">
如果你想获取或设置输入的值,比如在表单提交时,你可以使用$('input').val()
1。 .text
不作为文本框的属性存在。要检索它的值,使用val()
(见2)
2。你正在混合香草JS与你的JQuery。.value
应该是.val()
3。你想用.all
做什么?这是您的错误所指向的null。
4。我想这可能是你想要的:
var total = 0;
$('input[type="text"]').each(function() {
total += ($(this).val().replace(/D/g, '')) * 1
});
alert("Your total is " + total);
例子:JSFiddle