ПроблемаВыделите кусочки текста с Javascript
Предположим, что в бэкэндом моего веб-приложения у меня есть общие строки букв:
seq = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
и массив позиций в такой строка:
pos = [(0, 2), (4, 8)]
Мне нужно визуализировать эту последовательность в интерфейсе путем разделения это каждые n
символов. Затем, когда пользователь нажимает кнопку, мне нужно выделить последовательность между двумя параметрами (взятыми из pos
), на которые ссылается кнопка.
Мое решение
Я решить эту проблему путем реализации функции formatSequence
Javascript, который расщепляет seq
каждые n
символов и итерацию через pos
массив, чтобы обернуть каждую подстроку внутри span
тега. В результате получается нечто вроде этого:
<pre>
<span class="A">AA</span>AA<span class="B">A</span>
<span class="B">AAA</span>AA
AAAAA
</pre>
Когда пользователь нажимает на кнопку со ссылкой на класс A
я просто изменить фоновое правило CSS для класса A
.
Это работает :) Но функция formatSequence
слишком сложна имхо. Это была боль, связанная с несколькими линиями. Я предпочитаю не публиковать код, так как я ищу другие подходы, не меняющие код такой функции.
Лучшее решение?
Я думаю, что (лучше?) Решение было бы реализовать функцию, заданную два параметра start
и end
динамически выделяет текст между ними. Но он кажется еще более сложным, чем предыдущий (помните, что последовательность должна быть разделена каждые n
символов, и поэтому подсветка должна быть многострочной).
Любые предложения? Лучший подход для решения этой проблемы?