Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2013, 23:17
Аспирант
Отправить личное сообщение для j.r.r Посмотреть профиль Найти все сообщения от j.r.r
 
Регистрация: 24.06.2013
Сообщений: 32

Как умножить все числа в созданных строках таблицы?
Есть вот такой вот скрипт. Есть массив 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>
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2013, 00:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

j.r.r,
мало информации -- нет примера, пусть нерабочего.
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2013, 00:41
Аспирант
Отправить личное сообщение для j.r.r Посмотреть профиль Найти все сообщения от j.r.r
 
Регистрация: 24.06.2013
Сообщений: 32

Есть таблица, которая обрабатывает введённые данные, с возможностью добавить новые строки

<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">&nbsp;</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>&nbsp;</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х других. Как заставить правильно считать это произведение во вновь созданных кнопках? Причём сразу во всех созданных строках
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2013, 02:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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>
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2013, 17:51
Аспирант
Отправить личное сообщение для j.r.r Посмотреть профиль Найти все сообщения от j.r.r
 
Регистрация: 24.06.2013
Сообщений: 32

Спасибо большое!!! То что надо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
КАК В JQUERY ДОСТАТЬ ВСЕ ЧИСЛА ИЗ СТРОКИ Brook Events/DOM/Window 2 21.12.2012 14:34
вывод последних строк с таблицы бд, как на твиттере totje jQuery 8 08.01.2011 15:46
Как реализовать скроллинг в Div-е до указанной строки таблицы. Shabol Элементы интерфейса 3 24.09.2010 14:19
Как вложено прятать строки таблицы? Бобр Общие вопросы Javascript 10 01.08.2010 13:57
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37