Как умножить все числа в созданных строках таблицы?
Есть вот такой вот скрипт. Есть массив pr_it для произведения чисел введённых в ячейки nm_q и nm_p. Как сделать, чтобы при новом срабатывании функции все значения во всех строках были перемножены?
ПС Пытался делать отдельно для каждой строки, но значение pr_it переносится на следующую строку, а не ту, где введены числа... Помогите пожалуйста! <script type="text/javascript"> function addRow(id){ document.getElementById("prit").innerHTML = document.getElementById("qualit_a").value*document.getElementById("prezzo").value; var nn = document.getElementsByTagName('tr').length-4; var nm_l = new Array(); var nm_q = new Array();/* колличество */ var nm_p = new Array();/* цена */ var pr_it = new Array(); var td1 = new Array(); if (nn<2){ tutt.parentNode.removeChild (tutt); } else { itog.parentNode.removeChild (itog); } var tbody = document.getElementById (id).getElementsByTagName("TBODY")[0]; var row = new Array(); row[nn] = document.createElement("TR") row[nn].setAttribute('bgcolor','#666'); if(nn<2){ row[1].setAttribute('bgcolor','#fff000'); } td1[nn] = document.createElement("TD") td1[nn].appendChild(document.createTextNode(nn+1)) var td2 = new Array(); td2[nn] = document.createElement("TD") td2[nn].appendChild (document.createElement("input")) document.body.appendChild(td2[nn]); td2[nn].innerHTML="<input type='text' name='nome_lavor' id='nm_l[nn]'>"; var td3 = new Array(); td3[nn] = document.createElement("TD") td3[nn].appendChild(document.createElement("input")) var td4 = new Array(); td4[nn] = document.createElement("TD") td4[nn].appendChild (document.createElement("input")) document.body.appendChild(td4[nn]); td4[nn].innerHTML="<input type='text' name='qualit_a' id='nm_q[nn]'>"; var td5 = new Array(); td5[nn] = document.createElement("TD") td5[nn].appendChild (document.createElement("input")) document.body.appendChild(td5[nn]); td5[nn].innerHTML="<input type='text' name='prezzo' id='nm_p[nn]'>"; var td6 = new Array(); td6[nn] = document.createElement("TD") td6[nn].appendChild (document.createElement("a")) document.body.appendChild(td6[nn]); td6[nn].innerHTML="<a name='pr_it' id='pr_it[nn]'>"; td6[nn].innerHTML=document.getElementById("nm_p[nn]").value*document.getElementById("nm_q[nn]").value; var td7 = new Array(); td7[nn] = document.createElement("TD") td7[nn].appendChild (document.createTextNode("7")) row[nn].appendChild(td1[nn]); row[nn].appendChild(td2[nn]); row[nn].appendChild(td3[nn]); row[nn].appendChild(td4[nn]); row[nn].appendChild(td5[nn]); row[nn].appendChild(td6[nn]); row[nn].appendChild(td7[nn]); tbody.appendChild(row[nn]); var tbody_1 = document.getElementById (id).getElementsByTagName("TBODY")[0]; var row2 = new Array(); row2[nn] = document.createElement("TR") row2[nn].setAttribute('id','itog'); var td = new Array(); td[nn] = document.createElement("TD") td[nn].appendChild(document.createTextNode("Итого")) row2[nn].appendChild(td[nn]); tbody_1.appendChild(row2[nn]); } </script> |
j.r.r,
мало информации -- нет примера, пусть нерабочего. |
Есть таблица, которая обрабатывает введённые данные, с возможностью добавить новые строки
<table width="100%" border="1" cellspacing="1" cellpadding="1" id="smet" class="smet"> <tr id='tr_1'> <td scope="col">№№</td> <td scope="col">Наимен. работ</td> <td scope="col">Ед. измерения</td> <td scope="col">Кол-во</td> <td scope="col">Цена</td> <td scope="col">Итого</td> <td scope="col"><a hid="itog"> </a></td> </tr> <tr> <td scope="row"><a id="numer">1</a></td> <td> <input type="text" name="nome_lavor" id="nome_lavor"> </td> <td><a href="#" onclick="hiddenShow_2();" id="mera" class="num_1">М2</a></td> <td><input type="text" name="qualit_a" id="qualit_a" /></td> <td><input type="text" name="prezzo" id="prezzo"></td> <td><a id="prit">6</a></td> <td> </td> </tr> <tr id="tutt"> <td scope="row"><a id="itog_tut">Итого</td> </tr> </table> <a href="#" id="agg" onclick="addRow('smet') ;return false;">+</a> Одна из ячеек является произведением 2х других. Как заставить правильно считать это произведение во вновь созданных кнопках? Причём сразу во всех созданных строках |
j.r.r,
вариант ... добавляем строки плюсом, ставим цену и количество смотрим итог ... <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <table width="100%" border="1" cellspacing="1" cellpadding="1" id="smet" class="smet"> <tr id='tr_1'> <td scope="col">№№</td> <td scope="col">Наимен. работ</td> <td scope="col">Ед. измерения</td> <td scope="col">Кол-во</td> <td scope="col">Цена</td> <td scope="col">Итого</td> </tr> </table> <a href="#" id="agg" onclick="addRow('smet') ;return false;">+</a> <script> var nn = 0; function addRow(id) { var row = document.getElementById(id).insertRow(++nn) var sel = row.insertCell(0); var a = document.createElement("a"); a.appendChild(document.createTextNode(nn)) sel.appendChild(a); sel = row.insertCell(1); sel.appendChild(document.createElement("input")); sel = row.insertCell(2); a = document.createElement("a"); a.appendChild(document.createTextNode("М2")); a.href="#"; sel.appendChild(a); sel = row.insertCell(3); var input1 = document.createElement("input"); sel.appendChild(input1); sel = row.insertCell(4); var input2 = document.createElement("input"); sel.appendChild(input2); sel = row.insertCell(5); a = document.createElement("a"); var text = document.createTextNode("0") a.appendChild(text); sel.appendChild(a); input1.onkeyup = input2.onkeyup = function () { text.data = (parseFloat(input1.value)||0)*(parseFloat(input2.value)||0); } } addRow('smet') </script> </body> </html> |
Спасибо большое!!! То что надо!
|
Часовой пояс GMT +3, время: 19:55. |