#javascript #jquery #json #listbox #appendto
#javascript #jquery #json #список #приложение
Вопрос:
Я пытаюсь добавить все выбранные элементы из списка 1 в список 2, и все работает нормально. Проблема в том, что я хочу присвоить значениям элементов listitems в listbox 2 идентификатор, который я получаю из JSON.
У меня есть идентификатор из JSON, но я не уверен, как установить значения при использовании appendTo.
Вот код, который я использую сейчас, когда значения установлены на «0»:
$('#ListBox1 option:selected').appendTo('#ListBox2');
Я думаю, что я должен сделать что-то вроде этого:
var numberOfSelectedItems = $('#ListBox1 option:selected').length;
for(int i = 0; i < numberOfSelectedItems; i )
{
var ID = data.array[i].ID; //This is the ID value from JSON.
//TODO: Set the ID as value on each selected item
}
Пожалуйста, помогите =)
Комментарии:
1. сохраните $(‘#ListBox1 option:selected’) в массив и выполните итерацию.
Ответ №1:
Вы должны иметь возможность настроить использование .attr()
функции jQuery для установки идентификатора для каждого элемента, возможно, в сочетании с использованием полезных функций массива Javascript для следующего идентификатора в списке.
Что-то вроде…
$('#ListBox1 option:selected')
.attr('id', data.array.shift())
.appendTo('#ListBox2');
jQuery позволяет вам объединять последовательные операции с заданным выбором, поэтому вы можете установить атрибут id для каждого, прежде чем добавлять его во второй список.
data.array.shift
просто удаляет и возвращает первый элемент в массиве, поэтому каждый раз, когда это вызывается (для каждого элемента списка), вы получите следующий идентификатор, присвоенный обрабатываемому элементу списка.
Конечно, если вам понадобится использовать data.array
его впоследствии, вам может потребоваться сначала скопировать его.
Комментарии:
1. Спасибо, я почти уверен, что метод shift будет работать, но как мне использовать метод shift, когда мой массив является объектом? В моем приложении данные представляют собой массив, если объекты, а идентификатор является атрибутом. Пробовал это, но не сработало:
data.array.ID.shift()
2. Это просто
data.array.shift().ID
.