Не удаляется элемент из массива.
Здравствуйте.
Проблема в следующем куске кода. $(function () { $(".delete").on("click", function () { var item = $(this).parent().attr('id');//Должно быть, есть более лаконичный вариант записи. alert(item); //Отобразить id. Для проверки работы функции. channel.remove('"' + item + '"');//Удалить элемент из массива, если его значение == значению id. displayChannelList();//Вывести список каналов. В данном случае - элементы массива. По работе этой функции я поняла, что элемент массива не удаляется. }); }); Ссылка на jsfiddle Еще не все функции работают, нет валидации, но если у вас будут какие-либо замечания, касательно остального кода - пишите. |
Blondinka,
Непонятно, что в переменной channel( по идее это должна быть коллекция jquery ). Метод remove() не удаляет элементы из массива, он удаляет элементы из DOM, читайте документацию http://api.jquery.com/remove/ |
Спасибо, Sigizmund2012. Заменила remove(). Решила пойти другим путем, воспользовавшись splice() и indexOf(). Работает, но, только, 1 раз.
$(function () { $(".delete").on("click", function () { var item = channel.indexOf($(this).parent().attr('id')); alert(item); //Display id. Remove this code later. channel.splice(item,1); displayChannelList(); displayChanges(); }); }); Цитата:
|
Не хватает контекста. Что такое channel? И какую цель Вы преследуете?
|
jasper-blondin, channel - это массив, хранящий список rss-каналов.
var channel = [ 'http://rss.cnn.com/rss/edition.rss', 'http://cosmo.intoday.in.feedsportal.com/c/34156/f/618495/index.rss?', 'http://www.nasa.gov/rss/dyn/breaking_news.rss']; Текущая цель - удалить любое количество элементов массива channel без перезагрузки. Вот весь код. |
Цитата:
var item = channel.indexOf($(this).parent().attr('id')); у Вас item получает одно и то же значение после каждого клика. Проверьте, может у Вас item больше длины массива. Поэтому удаление больше не происходит. |
Цитата:
|
Цитата:
$(function () { $(".channelList").on("click", ".delete" , function () { var item = channel.indexOf($(this).parent().attr('id')); channel.splice(item, 1); update(); }); }); Цитата:
|
Sigizmund2012, спасибо за решение и за книгу.
|
Часовой пояс GMT +3, время: 08:48. |