2013-09-29 62 views
0

的jsfiddle:http://jsfiddle.net/KSCLC/3/乘以兩個單元在表一起

我有一個腳本(下同),增加了一個行的表。

我想兩個單元加在一起一共拿到

Item Price * Item Weight = Line Total 

if (field.value.length != 0) { 
    var upc=document.getElementById("UPC").value; 
    var weight=document.getElementById("weight").value +"lbs"; 
    var table=document.getElementById("ScannedItems"); 
    var row=table.insertRow(-1); 
    var cell1=row.insertCell(0); 
    var cell2=row.insertCell(1); 
    var cell3=row.insertCell(2); 
    var cell4=row.insertCell(3); 
    var cell5=row.insertCell(4); 
    var cell6=row.insertCell(5); 
    cell1.innerHTML=upc; 
    cell2.innerHTML="Example Description"; 
    cell3.innerHTML="$3.00"; 
    cell4.innerHTML=weight; 
    var total=cell3.innterHTML*cell4.innerHTML; 
    cell5.innerHTML="$" +total; 
    cell6.innerHTML="<a><span class='glyphicon glyphicon-plus' style='padding-right:15px;'></span></a><span>&nbsp;</span><a><span class='glyphicon glyphicon-minus'></span></a>"; 
    field.value =''; 
} 

我已經嘗試了兩個單元后,新的細胞才作出了新的變數,但我得到的是表$Nan

我搞亂的具體線路是:

cell3.innerHTML="$3.00"; 
cell4.innerHTML=weight; 
var total=cell3.innterHTML*cell4.innerHTML; 
cell5.innerHTML="$" +total; 
+0

一)'innerHTML'返回一個字符串b)您不能乘以美元和權重之類的東西,只能乘以整數/浮點數,所以你需要在追加美元符號之前乘以等等。 –

+0

我只是試着將'innterHTML'改成'value',結果相同 –

+0

'value'也返回字符串,將它轉換成數字。 –

回答

2

首先,你需要分析出的整數用戶輸入。接下來,你需要乘以。然後追加任何單位:

var weight = parseInt(document.getElementById("weight").value); 
var price = 3; 
var total = weight * price; 

// 

cell3.innerHTML = "$" + price.toFixed(2); 
cell4.innerHTML = weight + "lbs"; 
cell5.innerHTML = "$" + total.toFixed(2); 

編輯基於評論

訪問data-attributes通過getAttributesetAttribute完成。

cell5.setAttribute('data-total', total); // caches the total into data 

var total = cell5.getAttribute('data-total'); // reads the value 
+0

如何將所有線路總和加起來以實現小計? –

+0

你可以使用'data-attributes'在'td'或'substr'和'parseInt'上存儲每次從'innerHTML'返回的數值。 –

+0

我試過'cell5.data-total = total;',它停止加載腳本的其餘部分。 –

0

我只是指出了錯誤,你可以調試

var upc=document.getElementById("UPC").value; 
    var weight=document.getElementById("weight").value +"lbs"; // here appending lbs to weight 
    var table=document.getElementById("ScannedItems"); 
    var row=table.insertRow(-1); 
    var cell1=row.insertCell(0); 
    var cell2=row.insertCell(1); 
    var cell3=row.insertCell(2); 
    var cell4=row.insertCell(3); 
    var cell5=row.insertCell(4); 
    var cell6=row.insertCell(5); 
    cell1.innerHTML=upc; 
    cell2.innerHTML="Example Description"; 
    cell3.innerHTML="$3.00"; // value having $, so maths operation won't work 
    cell4.innerHTML=weight; // value having lbs, so maths operation won't work 
    var total=cell3.innterHTML*cell4.innerHTML; // Is not an integer 

而不是上面你可以嘗試這樣的事情

var weight=document.getElementById("weight").value; 
    var table=document.getElementById("ScannedItems"); 
    var row=table.insertRow(-1); 
    var cell1=row.insertCell(0); 
    var cell2=row.insertCell(1); 
    var cell3=row.insertCell(2); 
    var cell4=row.insertCell(3); 
    var cell5=row.insertCell(4); 
    var cell6=row.insertCell(5); 
    cell1.innerHTML=upc; 
    cell2.innerHTML="Example Description"; 
    cell3.innerHTML="$3.00"; 
    cell4.innerHTML=weight+"lbs"; 
    var total=3*weight;