2017-02-16 6 views
1

Я использую библиотеку загрузочной библиотеки taginput и сохраняю значения тегов в переменной oldListValues. После выполнения этого методаСохранять значение переменной после удаления значений из HTML-элемента

$('#tagsinput').tagsinput('removeAll'); 

oldListValues ​​переменная становится пустой.

Есть ли способ сохранить значения в переменной после выполнения этого метода taginput, чем клонировать этот элемент, а затем использовать значения из клонированного элемента?

Это часть кода, который я использую:

if ($('#tagsinput').tagsinput('items').length > 0) { 

    $('#modal').modal('show'); 

    $('#button').click(function(e) { 

     var oldListValues = $('#tagsinput').tagsinput('items'); 
     var mergedValues = $.merge(oldListValues, distValues); 

     $('#tagsinput').tagsinput('removeAll'); 
     $('#tagsinput').tagsinput('add', mergedValues.join('|')); 

    }); 

} 

ответ

1

Попробуйте

var oldListValues = $.extend([], $('#tagsinput').tagsinput('items')); 

Это будет клонировать выход tagsinput в новый массив, а не с помощью ссылки.

В зависимости от ваших требований браузера, вы также можете сделать это:

var oldListValues = [...$('#tagsinput').tagsinput('items')]

(not supported in IE < edge)

Edit: Вот скрипку, чтобы продемонстрировать: https://jsfiddle.net/jakelauer/tfgk87g3/

+1

Спасибо Джейк. Метод $ .extend() решает проблему! –

+0

Рад это слышать! Ударьте галочку, если она решит проблему :) Я заметил, что вы не принимали никаких ответов на StackOverflow раньше - люди могут не отвечать на ваши вопросы, если вы не принимаете ответы, так как они не получают за них кредит. – Jake