$(document).one('click', function(event) {
var q = function (i, e) {
if(e.tagName.toLowerCase() !== 'body') {
if((!$(arr[0]).attr('id') && e.id) || $(e).length > 1 || i == -1)
arr.push(
(e.id && "#"+e.id)
|| (e.className && e.tagName.toLowerCase()+"."+e.className)
|| (e.tagName.toLowerCase() + ":eq(" + $(e).index() + ")")
);
if(e.id)
return false;
}
else
return false;
}
var arr = [];
q(-1,event.target);
$(event.target).parents().each(q);
console.log(arr.reverse().join(' '));
});
- /**
- * strings - массив исходных строк
- * result - массив уникальные последовательности символов
- */
- var strings = [
- 'www.youtube.com/user/grickle#p/u/dasdas/0/tuhZuMl9StM',
- 'www.youtube.com/user/grickle#p/u/dasd as/3/hnvkIQHv0OQ',
- 'www.youtube.com/user/grickle#p/u/vcx bxcv/7/cjT2Huux34g',
- 'www.youtube.com/user/grickle#p/u/54354/2/Osex3fXi_OA'
- ],
- temp = [],
- result = [],
- repeat = {},
- newStrings = {};
-
- /**
- * Обходим исходный массив и разбиваем его по повторяющимся символам,
- * здесь это слеши. Создаём объект с ключами из уникальных строк, а
- * значения - индексы этих строк в разделённой оригинальной строке.
- * одинаковые же части сохраняем в массив повторяющихся.
- */
- for(var i = 0; i<strings.length; i++) {
- temp[i] = strings[i].split('/');
- result[i] = '';
- for(var j = 0; j<temp[i].length; j++) {
- if(temp[i][j] in newStrings) {
- repeat[temp[i][j]] = 1;
- }
- newStrings[temp[i][j]] = i;
- }
- }
-
- /**
- * Склеиваем уникальные части строки в одну.
- */
- for(var key in newStrings) {
- if(!(key in repeat))
- result[newStrings[key]]+=(result[newStrings[key]]!=''?'/':'')+key;
- }