2013-09-28 4 views
2

Как я могу получить, используя JQuery, в id первого DIV с классом: post (367), в следующем HTML-код:Получить идентификатор DIV в вложенных HTML элементов с помощью JQuery

<div id="own-posts"> 
    <span class="title">Me</span>  
    <div class="posts_container"> 
    <div class="post"></div> 

    <div id="367" class="post"></div> 
    <div id="365" class="post"></div> 
    <div id="345" class="post"></div> 
    <div id="343" class="post"></div> 

    </div> 

</div> 

Среди решения я попробовал:

$('#own-posts').children()[1].children()[1].attr('id'); 
+3

Недопустимо иметь идентификатор, начинающийся с номера (кроме HTML5), более старый браузер может жаловаться на проблемы. –

+0

@ Kolink Спасибо за ваше важное замечание, я буду принимать это во внимание в будущем. Как насчет того, чтобы иметь номер в атрибуте data, возникает ли такая же проблема? –

+0

@whitelettersandblankspaces Нет, это не так! Следуя комментарию Колинка, даже вполне допустимо начинать идентификатор с номера в HTML5, CSS все равно не нравится. Поэтому вам следует следовать совету Kolink –

ответ

4

первый .post элемент не имеет идентификатор, так что я думаю, вы имеете в виду первый .post элемент, который на самом деле имеет атрибут ID:

var id = $('#own-posts .post[id]:first').prop('id'); 

FIDDLE

+0

+1, он отлично работает в Fiddle, но я не знаю, почему на моей веб-странице он не работает, я должен глубоко понять ваше решение. –

+0

У вас есть несколько элементов с идентификатором '# own-posts', вы включили jQuery и функцию готовности документа и т. Д.? – adeneo

+0

У меня есть один элемент с id # own-posts, jquery и готовый документ здесь, проблема заключалась в том, что первый ребенок с классом 'post' не имел идентификатора, поэтому я использовал замечание Серджио и он работает сейчас. Большое вам спасибо для вашего бесценного hel –

1

$('#own-posts .post:first').prop('id'); работает, если все дивы с этим классом имеют идентификатор.

В противном случае, если образец является первой div.post не имеет идентификатор, но вторая же вы можете использовать:

$('#own-posts .post').eq(1).prop('id');

Я использовал .prop() из this

+0

Ссылка интересная, я постараюсь понять это и сделать он работает, спасибо за ваше время –

+1

Отлично, второе решение работает, вам было разумно заметить, что первый div не содержит id.Большое спасибо –

+1

@whitelettersandblankspaces, отлично это сработало. Рад, что смог помочь! – Sergio

1

Попробуйте

$('#own-posts .post').eq(1).prop('id'); 

DEMO

+0

Большое спасибо SURESH –

+0

@whitelettersandblankspaces Рад помочь вам :) –

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