2013-10-08 3 views
1

У меня есть страница с большим количеством динамически creted Див, как видно ниже:.Подсчет Div с классом и возвращение позиции

<div class="open"></div> 
<div class="open"></div> 
<div class="open"></div> 
<div class="open"></div> 

Я ищу способ, чтобы получить получить позицию элемента (например, если элемент является первым экземпляром, присваивает id = "1", если элемент является вторым экземпляром, присваивает id = "2".

В настоящее время я использую следующий jquery, но я застрял, так как Im не уверен, где чтобы перейти отсюда.

$(document).ready(function() { 
var numDialogs = $('.open').length; 
}); 

Любые предложения?

+0

Я имел в виду присвоить идентификатор, как в случае, если div является первым с этим классом, дайте ему идентификатор 1 ... – Mark

ответ

5

Просто используйте:

$('div.open').prop('id', function(i){ 
    return 'openElement' + (i + 1); 
}); 

JS Fiddle demo.

Я намеренно добавил префиксную строку, потому что в то время как числовые id s являются действительными под HTML5, они остаются недействительными под HTML4 и их трудно выбрать с помощью селекторов CSS.

Ссылки:

+0

Ударьте меня. Kudos +1 –

+0

Спасибо, любезно! :) –

+0

Почему '.prop' вместо' .attr'? –

0

Марк, вы можете настроить таргетинг на элемент, а затем добавить атрибут как так:

$('.open').attr('id', numDialogs); 

Это даст это все 4 в этом случае, но я оставлю вам бороться с реальной логикой для реализации правильных номеров. Удачи.

Смежные вопросы