<!DOCTYPE html>
<script>
function m(){
var tb=document.getElementById("w");
var len=tb.rows.length;
var b=[];
for(var i=1;i<len;i++)
{
b[ i ] = parseInt( tb.rows[ i ].cells[ 4 ].querySelector('input').value ) * parseInt( tb.rows[ i ].cells[ 5 ].querySelector('input').value );
document.getElementById("w").rows[i].cells[6].innerHTML=b[i];
}
}
</script>
</body>
</html>
我是javascript的新手!我尝试从表格中的textbox获取值并动态更新linetotal,但我得到输出为NaN。 任何人都可以纠正错误!!
答案 0 :(得分:0)
您正尝试访问表格单元格上的.value
。您需要访问表格单元格内的input
字段。
您需要使用.querySelector('input').value
而非.value
b[ i ] = parseInt( tb.rows[ i ].cells[ 4 ].querySelector('input').value ) * parseInt( tb.rows[ i ].cells[ 5 ].querySelector('input').value );
我真的建议使用jQuery。它会让生活变得更轻松! Vanilla Javascript很难使用和维护 - 即使对于最好的开发人员也是如此。
答案 1 :(得分:0)
function m(){
var tb=document.getElementById("w");
var len=tb.rows.length;
var b=[];
for(var i=1;i<len;i++) {
var qty = tb.rows[i].cells[4].querySelector('input').value,
price = tb.rows[i].cells[5].querySelector('input').value;
console.log(qty);
if(qty != "" && price != "") {
b[i]=parseInt(qty)*parseInt(price);
} else {
b[i] = "None";
}
tb.rows[i].cells[6].innerHTML=b[i];
}
}
您需要使用querySelector('input').value
代替.value
。我添加了一个if语句,检查两个字段是否都为空,如果是,则结果为“Null”。您可以将“失败字符串”编辑为您想要的任何内容。
答案 2 :(得分:0)
检查出来:https://jsfiddle.net/abhiphirke/joq3jLk5/3/
在字段中填写值,然后点击Click Me!
按钮。如果你不这样做,你会得到NaN。
玩得开心!!