Как умножить все числа в созданных строках таблицы?
Есть вот такой вот скрипт. Есть массив 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, время: 07:24. |