#javascript #html
#javascript #HTML
Вопрос:
Я пытаюсь создать таблицу, в которую я ввожу элементы из объекта. Существует ограниченное количество элементов, которые могут отображаться на странице. Итак, чтобы увидеть больше, вы нажмете на next / previous, чтобы увидеть другую «страницу».
Проблема в том, что я хочу удалить индексы, которые не должны отображаться.
Логика внизу заключается в том, что я устанавливаю минимальный и максимальный индекс и, чтобы увидеть другую страницу, я увеличу эти числа на 10 (чтобы получить 10 результатов на странице), но когда я нажимаю на кнопку далее, я хочу удалить 0-10 и иметь только 10-20, но таблица.deleteRow(index) ничего не делает. (но таблица.deteteRow(1) работает)
function fill(){
prices.forEach((element,index) =>{
const table = document.querySelector("table");
const tr = document.createElement("tr");
tableItems.appendChild(tr);
if(index >= min amp;amp; index < max){
const type = document.createElement("td");
const name = document.createElement("td");
const hours = document.createElement("td");
const photos = document.createElement("td");
const place = document.createElement("td");
const price = document.createElement("td");
type.innerHTML = element.type;
name.innerHTML = element.name;
hours.innerHTML = element.hours;
photos.innerHTML = element.photos;
place.innerHTML = element.place;
price.innerHTML = element.price;
tr.appendChild(type);
tr.appendChild(name);
tr.appendChild(hours);
tr.appendChild(photos);
tr.appendChild(place);
tr.appendChild(price);
}
if(index > max){
table.deleteRow(index);
}
//
});
}
buttonRight.addEventListener("click",()=>{
min = max;
max = max 10;
fill();
});
buttonLeft.addEventListener("click",()=>{
max = min;
min = min -10;
fill();
});
Комментарии:
1. Используйте removeChild()
2. У меня большие проблемы при использовании removeChild. Он всегда выдает ошибки, поэтому я хотел вместо этого использовать deleteRow()
3. Действительно ли здесь необходимо выполнять манипуляции с dom? Кажется, это может быть достигнуто с помощью css и нескольких классов (назначенных / удаленных с помощью javascript).
4. Ну, я подумал об этом, что я бы назначил те, которые должны отображаться с помощью active class, а остальные будут display: none, но я не сталкивался с удалением элементов с помощью JS, и я воспринял это как практику.
Ответ №1:
Вы всегда должны удалять строки с индексом 0-9 и не должны изменять номер индекса, потому что в вашей таблице всегда есть 10 строк. Кажется, что когда вы нажимаете кнопку Next, простой способ — удалить все tr из таблицы перед вызовом функции fill .