удаляет элемент массива только 1 раз
Как заставить удалять последний элемент при каждом клике?
(jQuery 1.8.1) <p>Lorem ipsum dolor sit amet laborum</p> $('p').on('click', function() { txt_array = $(this).html().split(' '); // делаю массив delete txt_array[txt_array.length - 1]; // удаляю последний элемент txt_string = txt_array.join(' '); // соединяю в строку $(this).html(txt_string); }) Причем, уже не раз натыкался, что после изменения контента, функция больше не работает. Может сам подход к решению неправильный? |
Дело в том, что при удалении элемента массива через delete его длина не изменяется. То есть, последний элемент формально остается, но со значением undefined.
Для большинства операций над массивами в javascript существуют встроенные методы. Конкретно для удаления последнего элемента предназначен метод pop. Задача решается так: <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> <p>Lorem ipsum dolor sit amet laborum</p> <script> $('p').on('click', function() { var txt_array = $(this).html().split(' '); // делаю массив txt_array.pop(); // удаляю последний элемент var txt_string = txt_array.join(' '); // соединяю в строку $(this).html(txt_string); }) </script> Подробней - http://javascript.ru/Array |
Часовой пояс GMT +3, время: 17:43. |