$this之间的区别.Text和$this.值以及为什么1返回空值



我有一个包含以下行脚本的问题(顶部现在被注释掉了)。它们在循环中对表单上的文本框进行求和。然而,我得到:'未捕获的类型错误:无法读取未定义的属性'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

最新更新