illiatovpeko
@illiatovpeko
Самолепный ВебдевелопЁр

Что делаю не так в JQuery?

Суть: код должен захватить список с айдишником list и удалить последний пункт списка при нажатии на backspase (использую код 8). Почему-то код не срабатывает.

$('body').keypress(function(e) {
  if (e.which == 8) {
      $('#list').remove('li:last')};
  })
;

Весь код, на всякий случай:

// adding content
$(document).ready(function(){


let text = document.querySelector('#text');
let list = document.querySelector('#list');

document.addEventListener('keydown', addLetter);

function addLetter(e){
  let key = e.key;
  
  if( /^[a-zа-яё]$/i.test(key) ){
    list.insertAdjacentHTML('beforeend', `<li class="hiden">${key}</li>`);
    $('li.hiden').fadeIn(3000);
    $('li.hiden').removeClass('hiden');
  }
};

  $('body').keypress(function(e) {
  if (e.which == 8) {
      $('#list').remove('li:last')};
  });

});
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
ReaverJS
@ReaverJS
Keypress - не может считывать backspace, используйте keydown.
$('x').remove('y') - означает "выбрать все X, которые являются Y".
Т.е. $('#list').remove('li:last-child')} - выбрать элемент #list И если он является li и последним - удалить. Тут надо вот так:
$('body').keydown(function(e) {
    console.log(e.which);
    if (e.which == 8) {
      $('#list li:last-child').remove();
    }
  });

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы