Я скопировал несколько текстовых узлов со страницы (то есть, живой DOM) и сохранил их в массиве. Можно ли снова найти эти точные узлы в реальном DOM? Мне нужно использовать простой JavaScript.
Вот как работает мой проект:
- Объект конфигурации определяет разделы страницы (с помощью селекторов CSS), где есть текстовое содержимое, и, при необходимости, подразделы в этом разделе (также с использованием селекторов CSS), где есть текстовое содержимое, которое следует игнорировать. Я использую имена свойств, соответственно,
select
и exclude
.
- Используя Sizzle (механизм выбора jQuery), я генерирую коллекцию элементов для каждого из
select
селекторов, а затем клонирую ее.
- Затем я запускаю селекторы
exclude
для коллекции select
, нахожу все соответствующие элементы и удаляю их из коллекции select
.
- Используя коллекцию
select
с удаленными секциями exclude
, я пересекаю ее, чтобы построить массив только текстовых узлов.
- Я использую этот массив текстовых узлов для сопоставления слов на основе предоставленного списка терминов, которые могут быть в исходном текстовом содержимом. Для этого я создаю массив объектов, которые включают свойства, такие как текстовый узел, в котором был найден термин, и в какой позиции / смещении этот термин встречается в текстовом узле
data
.
Учитывая последний массив, мне нужно иметь возможность сопоставлять клонированные текстовые узлы, в которых были найдены совпадающие термины, с исходными текстовыми узлами, из которых они были клонированы. Если я могу сделать это, я могу просто выполнить итерацию по моему массиву объектов, сначала найдя текстовый узел, который соответствует живому DOM (из которого он был первоначально клонирован), а затем связав термин в позиции / смещении, которое я записал в объекте.
Надеюсь, в этом есть какой-то смысл - пожалуйста, дайте мне знать, если нет, и я могу предоставить более подробную информацию. Это должно быть детерминированным, то есть я не могу просто найти в реальном DOM текстовый узел с таким же data
, поскольку это может привести к ложным срабатываниям.
Опять же, я должен использовать простой JavaScript здесь, а не jQuery или любые другие библиотеки.
Я ценю любую помощь!