在多个TD中添加分类帐总计

时间:2012-08-07 09:50:32

标签: javascript jquery sum spreadsheet

此代码生成分类帐。我把它缩小到最低限度。通过单击加号,它会在分类帐中添加一行。

我希望添加变量newAmount的每个总和,并在每行右侧的TD中找到其更新的总数。我创建了newAmount.id = "mainAmount";来创建唯一ID,认为这会有所帮助。

var mainNumber = 0;

function addElement()
{

  //add a number for each row
  mainNumber++;


  //create each row, id each slot, and add it where it goes
  newDiv = document.createElement("div");
  newDiv.id = "main";
  newTable = document.createElement("table");
  newTable.id = "mainTable";
  newDiv.appendChild(newTable);
  newTr = document.createElement("tr")
  newTr.id = (mainNumber);
  newTr.className = "mainRow";
  newTable.appendChild(newTr);
  newAmount = document.createElement("td");
  newAmount.id = "mainAmount";
  newAmount.className = (mainNumber);
  newPlus = document.createElement("td");
  newPlus.id = "mainPlus";
  newTotalTable = document.createElement("table");
  newDiv.appendChild(newTotalTable);
  newTotalTable.id = "mainTotalTable";
  newTotalTr = document.createElement("tr");
  newTotalTable.appendChild(newTotalTr);
  newTotalTr.id = "mainTotalTr";
  newTotalTd = document.createElement("td");
  newTotalTd.id = "mainTotalTd" + (mainNumber);
  newTr.appendChild(newAmount);
  newTotalTr.appendChild(newTotalTd);

  //whats default inside of each slot
  newAmount.innerHTML = '<form name="formAmount"><textarea name="textAmount" size="25" onfocus="wait();" id="amount' + (mainNumber) + '">0</textarea>';
  newTr.appendChild(newPlus);

  //click this to add a row
  newPlus.innerHTML = '<a href="#" onclick="addElement();"><img src="images/plus.png"></a>';


  // add the newly created element and it's content into the DOM
  my_div = document.getElementById("mainAnchor");
  document.body.insertBefore(newDiv, my_div);

}

//doesn't work...trying to hover over any row and show var idName in console  
function trHover(){ 
$('tr').hover(function() {
    var idName = $('tr'+'#'+(mainNumber)).attr('id');                    
   console.log(idName);
});
}

//when you focus on amount box, this is activated, which adds attribute onblur and stars addTotal
function wait(){
var blurred = $(this).attr("onblur");
blurred = addTotal();
}

//adds total and displays it in td to the right
function addTotal(){
var y = 1;
var sum = 0;
var input;
while( ( input = document.getElementById( 'amount'+y ) ) ) {
    sum += parseInt( input.value );
    ++y;
    console.log(sum);
    $("#mainTotalTd1").text(sum);
}
}

1 个答案:

答案 0 :(得分:0)

而不是添加单行,看起来点击加号会添加一个div和两个表,所以我不确定你要去那里。我可以修复悬停功能:

$('tr').hover(function() {
    var idName = $(this).attr('id'); // 'this' is the element being hovered
    console.log(idName);
});