Alexanevsky
@Alexanevsky
Любительская web-разработка

Как реализовать автоматическое присваивание id диву?

Здравствуйте!

Есть один div со вложенными в него другими divами.
Необходимо, чтобы каждому divу, находящемуся внутри родительского, автоматически присваивались разные id по порядку с цифрой этого порядка, что-то вроде:

<div id="main">
   <div id="block-1"></div>
   <div id="block-2"></div>
   <div id="block-3"></div>
   <div id="block-4"></div>
</div>


Благодарен за любую помощь.
  • Вопрос задан
  • 3565 просмотров
Решения вопроса 1
fornit1917
@fornit1917
Как-то так.
$('#main div').each(function(i){
   $(this).attr('id', 'block-'+i);
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@lnked
Но лучше немного видоизменить:

<div id="main">
   <div><div></div></div>
   <div></div>
   <div></div>
   <div></div>
</div>

<script>
	$('#main>div').each(function(i){
	   $(this).attr('id', 'block-'+(i+1));
	})
</script>


Иначе получится что каждый див, даже вложенный во внутренние дивы получит id
Ответ написан
Комментировать
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Лучше использовать для внутренних дивов класс и перебирать все элементы с этим классом. Сейчас тенденция отказа от id, многие как и я используют их только для основных блоков, такие как header или footer, а Вы хотите для каждого блока новый id.
Ответ написан
@Insayt
Если кол-во элементов фиксированное, то решение @lnked подойдет.
Если же дивы генерируются на ходу - то нужна функция, которая будет узнавать последний порядковый номер id и генерировать для новых дивов id++
function someFunct(){
 var lastId = $('#main>div').last().attr('id'); 
// Из полученного значения получаете цифру удобным для вас
// способом и потом что то вроде
$('#main').append('<div id="block-'+(lastId+1)+'">');
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы