Я должен ввести новую строку в таблицу, проблема заключается в том, что я хочу, чтобы новая строка была как первая строка, где это текстовые поля не просто слова..
function displayResult() {
var table=document.getElementById("customers");
var row=table.insertRow(0);
var item=row.insertCell(0);
var link=row.insertCell(1);
var price=row.insertCell(2);
var comment=row.insertCell(3);
item.innerHTML="words";
link.innerHTML="words";
price.innerHTML="words";
comment.innerHTML="words";
}
Оригинальная строка, в которой я хочу, чтобы новые строки были имитированы.
</tr>
<td>
<input type ="text" name= "item" placeholder= "Item Description" />
</td>
Вот код кнопки, который вызывает функцию
<br>
<button type="button" onclick="displayResult()">Insert New Item</button>
Все, что вам нужно, это cloneNode()
, или вы можете просто создать каждый элемент еще раз, добавить их и вставить строку, но это не так чисто. Некоторые проблемы с вашим кодом: Не используйте <br>
. Это долгое время не рекомендуется. Для этой цели вы должны использовать поле css/padding/position. Не используйте onclick
или любые встроенные js в html. Это никогда не было хорошей практикой. Вместо этого получите ссылку на элемент и добавьте прослушиватель событий с помощью javascript. Кроме того, ваш html строки/ячейки недействителен. У вас есть строка, закрытая перед ячейкой...
<table>
<tbody>
<tr id="myRow"> <!-- you can use this id to find the row with javascript -->
<td>
<input type="text" name="item" placeholder="Item Description">
</td>
</tr>
</tbody>
</table>
<button id="myButton" type="button">Insert New Item</button> <!-- you can use this id to find the button with javascript -->
ЯШ:
var myButton = document.getElementById('myButton'); //get button with id "myButton"
var myRow = document.getElementById('myRow'); //get row with id "myRow"
myButton.addEventListener('click', function() { //add click function to "myButton"
var newRow = myRow.cloneNode(); //clone the row
myRow.parentNode.insertBefore(newRow, myRow.nextSibling); //add newRow after "myRow"
});