2 варианта
1 в строке ~64 заменил option.innerHTML на html: option.outerHTML, таким образов в конечный передается не только текст из , но и сам с учетом всех атрибутов
2 Ищем метод
SelectParser.prototype.add_option
и внутри него первый вызов
this.parsed.push({
. Добавляем в объект, который "пушится" в массив, новый элемент. Назовем его, к примеру,
link:
link: option.getAttribute('data-link'),
На данном участке кода option - это ссылка на DOM-элемент очередного из нашего исходного селекта.
Получается примерно такой код:
SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
if (option.nodeName.toUpperCase() === "OPTION") {
if (option.text !== "") {
if (group_position != null) {
this.parsed[group_position].children += 1;
}
this.parsed.push({
link: option.getAttribute('data-link'),
array_index: this.parsed.length,
options_index: this.options_index,
//...
Находим в файле строку (в моей версии это 264 строка)
option_el.setAttribute("data-option-array-index", option.array_index);
На этом участке кода создается конечный пункт списка . А наше значение из data-link у нас готово к использованию в переменной option.link.
Рядом с найденной добавляем строку
option_el.setAttribute("data-link", option.link);
1 решение моё, 2 подсказал
Иван Пшеницын на
ru.stackoverflow.com