Суть такова:
Например мы кликаем на элемент и получаем его jQuery объект, далее нам нужно построить дерево родителей этого элемента например таким образом:
"body[0] > div[1] > div[0] > article[0]> section[0] > header[0] > p[3]"
чтобы такую запись можно было записать например в базу данных, потом прочитать и найти этот элемент.
Построить дерево не проблема, проблема узнать на каждом шаге номер индекса элемента среди его схожих смежных элементов.
У кого какие варианты? Решения можно прилагать как на jQuery, так и на чистом js или прилагайте ссылки где почитать о данной проблеме.
Вот мой вариант, но к сожалению он не работает правильно.
var parents_tree = function ( obj ) {
var obj_tag = obj[0].tagName.toLowerCase(),
path = [],
i = 0,
obj_class, index;
while ( obj_tag !== 'html' ) {
index = i === 0 ? ':eq(0)' : ':eq(' + obj.index(obj_tag) + ')';
obj_class = obj.attr('class') !== undefined ? ('.' + obj.attr('class') ).split(' ').join('.') : '';
path.unshift(obj_tag + index );
obj = obj.parent();
obj_tag = obj[0].tagName.toLowerCase();
i++
}
return path.join(' > ');
}
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.