Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2010, 17:24
Интересующийся
Отправить личное сообщение для Kenshi25 Посмотреть профиль Найти все сообщения от Kenshi25
 
Регистрация: 23.09.2010
Сообщений: 15

Как сделать отступы в списке?
Есть список, внутри которого есть еще списки, а внутри него еще списки... ну и так далее. Содержимое каждого элемента списка взято в div. Нужно проставить отступы (margin-left) для div, но так, чтобы за каждую степень вложенности списка отступ увеличивался на N. Знаю, можно сделать через css, но в моем случае это не подойдет.

<ul>
    <li><div>a1</div>
        <ul>
            <li><div>b1</div>
                <ul>
                    <li><div>c1</div></li>
                    <li><div>c2</div></li>
                    <li><div>c3</div></li>
                </ul>
            </li>
            <li><div>b2</div></li>
            <li><div>b3</div></li>
        </ul>
    </li>
    <li><div>a2</div>
    <li><div>a3</div>
</ul>

Последний раз редактировалось Kenshi25, 24.09.2010 в 17:32.
Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2010, 18:24
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Могу предложить код на "чистом javascript". Может поможет
<style>
UL { margin: 0px; }
LI { list-style-type: none; }
</style>
<ul>
  <li><div>a1</div>
    <ul>
      <li><div>b1</div>
        <ul>
          <li><div>c1</div></li>
          <li><div>c2</div></li>
          <li><div>c3</div></li>
        </ul>
        </li>
        <li><div>b2</div></li>
        <li><div>b3</div></li>
      </ul>
    </li>
  <li><div>a2</div>
  <li><div>a3</div>
</ul>
<script>
var allDivs = document.getElementsByTagName('div')
for(var i = 0; i < allDivs.length; i++){
  var element = allDivs[i], count = 0
  while(element){
    if(element.tagName == 'UL') count++
    element = element.parentNode
  }
  allDivs[i].style.marginLeft = 30*count + 'px'
}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2010, 19:01
Интересующийся
Отправить личное сообщение для Kenshi25 Посмотреть профиль Найти все сообщения от Kenshi25
 
Регистрация: 23.09.2010
Сообщений: 15

А если мне нужно не все div, а только дивы внутри определенного контйнера?)
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2010, 19:40
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

var allDivs = document.getElementById('wrapper').getElementsByTagName('div')
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать такое fancy menu uonax Элементы интерфейса 2 22.05.2010 12:52
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 19:14
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24