Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.09.2014, 21:04
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Erolast
Можно так еще
Я бы сказал, что лучше так. Поскольку оглавление больше вложеные списки, нежели заголовки...
Ответить с цитированием
  #12 (permalink)  
Старый 30.09.2014, 21:09
Аватар для Roman Koff
Аспирант
Отправить личное сообщение для Roman Koff Посмотреть профиль Найти все сообщения от Roman Koff
 
Регистрация: 14.04.2010
Сообщений: 46

Ага, а как вложенность тогда реализовать? Мне кажется проще сгенерить список заголовков и применить стили к их контейнеру, с отступами, уменьшенным размером и другими блекджеками...

А как можно изящно выбрать теги вложенные в тег? У меня сейчас выглядит так:
$('.page-content-body h2,.page-content-body h3').each(function (i) {
	var c = $(this);
});


А можно какнить сократить запись? (и есть ли возможность перебрать таким образом несколько родительских тегов).

То есть если говорить императивным языком -- можно сделать два вложенных перебора для элементов .page-content-body и для заголовком внутри них?

Последний раз редактировалось Roman Koff, 30.09.2014 в 21:12.
Ответить с цитированием
  #13 (permalink)  
Старый 30.09.2014, 21:11
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Roman Koff
а как вложенность тогда реализовать?
Так она понятна по названиям тегов...
Х1 - первый уровень
Х2- второй
и т.д.
Если они в твоем диве стоят как нужно, т.е. идут в правильной последовательности - нужно будет просто добавлять в конец нужного списка...
Ответить с цитированием
  #14 (permalink)  
Старый 30.09.2014, 21:12
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Roman Koff
Мне кажется проще сгенерить список заголовков
Тебе может оно и проще... Но зачем двойной комплект заголовков на странице?
Ответить с цитированием
  #15 (permalink)  
Старый 30.09.2014, 21:26
Аватар для Roman Koff
Аспирант
Отправить личное сообщение для Roman Koff Посмотреть профиль Найти все сообщения от Roman Koff
 
Регистрация: 14.04.2010
Сообщений: 46

Про двойной комплект -- логично, но страницы формируют обычные юзверги, а они не всегда корректны "во вложениях".
Ответить с цитированием
  #16 (permalink)  
Старый 30.09.2014, 21:30
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Roman Koff, как делать в итоге решать тебе...

Сообщение от Roman Koff
страницы формируют обычные юзверги, а они не всегда корректны "во вложениях"
Некорректные заголовки все равно покажутся некорректно... Как их не формируй. Линейно... Или вложено... Пофиг.
Ответить с цитированием
  #17 (permalink)  
Старый 30.09.2014, 21:53
Аватар для Roman Koff
Аспирант
Отправить личное сообщение для Roman Koff Посмотреть профиль Найти все сообщения от Roman Koff
 
Регистрация: 14.04.2010
Сообщений: 46

Генератор получился такой, но не ясно, как выбрать заголовки только у текущего элемента 'make-toc'. Кроме того, список, конечно, кошернее будет. Но не придумаю как вложенность правильно отработать.

$('.make-toc').each(function (cInd) {
	var source = $(this);
	var toc = document.createElement('div');
	var s = '';
	toc.className = 'toc';
	$('h2, h3').each(function (hInd) {
		var h = $(this);
		var headerId = 'header' + cInd + '_' + hInd;
		var tag = h.get(0).tagName.toLowerCase();
		h.before("<a id='" + headerId + "'></a>");
		s += "<" + tag + "><a href='#" + headerId + "'>"
			+ h.text() + "</a></" + tag + ">";
	});
	toc.innerHTML = s;
	source.before(toc);
});

Последний раз редактировалось Roman Koff, 30.09.2014 в 22:22.
Ответить с цитированием
  #18 (permalink)  
Старый 30.09.2014, 23:07
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Roman Koff
не ясно, как выбрать заголовки только у текущего элемента 'make-toc'
С помощью того же
http://jquery-docs.ru/traversing/find/
Ответить с цитированием
  #19 (permalink)  
Старый 30.09.2014, 23:09
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Roman Koff
не придумаю как вложенность правильно отработать
Это будет хорошей тренировкой на создание алгоритма, реализующего такую задачу.
Ответить с цитированием
  #20 (permalink)  
Старый 01.10.2014, 23:05
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Roman Koff
Ошибка: свойство find не поддерживается
Ты ссылку смотрел? Все понял?
Там ведь даже примеры есть...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В Chrome жму "Назад", в место страницы выводит выводит json frost18 AJAX и COMET 6 12.08.2014 11:10
Отловить уход со страницы без учета обновления страницы IgorN Events/DOM/Window 7 12.03.2013 16:55
условие определенной страницы jQuery makingpretty jQuery 0 22.06.2011 11:17
Загрузить элементы документа с другой страницы alexrussia Events/DOM/Window 10 25.03.2011 10:17
Вычисление высоты страницы. keysi_ Events/DOM/Window 2 03.08.2010 18:03