Почему у меня appendChild засовывает не в конец?
Добрый день,
простите, пожалуйста, за нубовский вопрос... Что-то совсем зациклился, и не могу понять, почему у меня при добавлении строки в таблице эта строка появляется на предпоследнем, а не на последнем месте. Код (html + js): <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head id="head"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style type="text/css"> </style> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> </head> <body bgproperties=fixed> <p id="ApproxAll"> <p id="Approx_0"> <input type="text" id="ApproxA_0" size=6 placeholder="<A (Moll/L)"> <input type="text" id="ApproxB_0" size=6 placeholder=">B (Moll/L)"> <input type="text" id="ApproxC_0" size=6 placeholder="<C (Da)"> <input type="text" id="ApproxD_0" size=6 placeholder=">D (Da)"> <input type="text" id="ApproxE_0" size=6 placeholder="<E (%)"> <button onclick="DeleteApproximation(0)">X</button> <br> </p> <br> </p> <br> <button onclick="AddMoreApproximations()">Add More</button> <script> var TotalAmountOfApproximations=1; function AddMoreApproximations() { let par = document.createElement("P"); par.id='Approx_'+TotalAmountOfApproximations; par.innerHTML= ' <input type="text" id="ApproxA_'+TotalAmountOfApproximations+'" size=6 placeholder="<A (Moll/L)">'+ ' <input type="text" id="ApproxB_'+TotalAmountOfApproximations+'" size=6 placeholder=">B (Moll/L)">'+ ' <input type="text" id="ApproxC_'+TotalAmountOfApproximations+'" size=6 placeholder="<C (Da)">'+ ' <input type="text" id="ApproxD_'+TotalAmountOfApproximations+'" size=6 placeholder=">D (Da)">'+ ' <input type="text" id="ApproxE_'+TotalAmountOfApproximations+'" size=6 placeholder="<E (%)">'+ ' <button onclick="DeleteApproximation('+TotalAmountOfApproximations+')">X</button> <br> '; document.getElementById('ApproxAll').appendChild(par); TotalAmountOfApproximations++; return; } function DeleteApproximation(ind) { if(TotalAmountOfApproximations==1) { document.getElementById('ApproxA_0').value = ""; document.getElementById('ApproxB_0').value = ""; document.getElementById('ApproxC_0').value = ""; document.getElementById('ApproxD_0').value = ""; document.getElementById('ApproxE_0').value = ""; } else { TotalAmountOfApproximations--; for(var i=ind; i<TotalAmountOfApproximations; i++) { var next=i+1; document.getElementById('ApproxA_'+i).value = document.getElementById('ApproxA_'+next).value; document.getElementById('ApproxB_'+i).value = document.getElementById('ApproxB_'+next).value; document.getElementById('ApproxC_'+i).value = document.getElementById('ApproxC_'+next).value; document.getElementById('ApproxD_'+i).value = document.getElementById('ApproxD_'+next).value; document.getElementById('ApproxE_'+i).value = document.getElementById('ApproxE_'+next).value; } var elem = document.getElementById('Approx_'+TotalAmountOfApproximations); elem.parentNode.removeChild(elem); } return; } </script> </body></html> Тут я создаю строку из 5 label и одной кнопки, у label-ов id должны быть Approx_%d, где %d - номер строки с 0. Вот когда я вызываю добавление этой строки в общую структуру посредством document.getElementById('ApproxAll').appendChild(par); полученная срока (хоть и ее id максимальный) должна засовывается в конец, а попадает она в предпоследнее положение. Я пробовал через innerHTML+=... но тогда если юзер уже заполнил что-то, то эти значения теряются, то есть вроде appendChild по сути. Помогите, пожалуйста, тыкните мне, почему оно в конец не вставляется. Спасибо! |
Was-Ja,
строка 30 ...=0; строку 44 перенести в 34 |
Цитата:
измените строки 15 и 24 на div |
<p> внутрь <p> нельзя вставлять.
Тег <p> не требует закрытия Браузер считает, что очередной <p> закрывает предыдущий <p id="ApproxAll"> <p id="Approx_0"> означает <p id="ApproxAll"> </p> <p id="Approx_0"> Замените <p > на <div> и будет вам счастие. |
Спасибо большое за советы!!!
Цитата:
|
Часовой пояс GMT +3, время: 17:52. |