Ваш код создает новый список каждый раз, когда вы добавляете новую книгу. Чтобы исправить это, нужно обновлять уже существующий элемент списка вместо создания нового.
Вот измененный код с объяснением:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script src="main.js"></script>
</html>
```
```javascript
let list = ["Мастер и Маргарита", "Гарри Поттер", "За пропастью во лжи", "Властелин колец", "Дюна", "Отцы и дети"]
const Header = document.createElement('h1');
Header.textContent = 'Домашняя библиотека'
document.body.append(Header)
const Addbutton = document.createElement('button');
Addbutton.textContent = 'Добавить книгу'
document.body.append(Addbutton)
const Searchbutton = document.createElement('button');
Searchbutton.textContent = 'Найти'
document.body.append(Searchbutton)
// Создаем элемент списка один раз
const ulEl = document.createElement('ol');
document.body.append(ulEl);
function newlist() {
// Очистим текущий список перед обновлением
ulEl.innerHTML = '';
for (let i = 0; i < list.length; i++) {
const liEl = document.createElement('li');
liEl.textContent = `${list[i]}`
ulEl.append(liEl)
}
}
// Инициализация списка
newlist();
function Adding() {
const newBook = prompt('Введите название книги');
if (newBook) { // Проверяем, что ввод не пустой
list.push(newBook);
newlist(); // Обновляем список
}
}
// Привязываем обработчик события к кнопке
Addbutton.onclick = Adding;
```
### Объяснение изменений:
1. **Создание `ol` элемента один раз**: Теперь `ulEl` создается один раз в начале, а не каждый раз, когда добавляется новая книга. Это позволяет избежать дублирования списков.
2. **Очистка списка**: В функции `newlist()` я добавил строку `ulEl.innerHTML = '';`, которая очищает содержимое списка перед тем, как мы его обновим с новыми элементами. Это позволяет обновить отображение списка без дублирования.
3. **Проверка пользователя**: Я также добавил проверку на то, что пользователь ввел название книги, прежде чем добавлять её в список. Это позволяет избежать добавления `undefined` в массив, если пользователь отменил запрос на ввод.
Теперь при нажатии на кнопку "Добавить книгу" список будет обновляться, вместо того чтобы создавались дубликаты.