2015-12-14 3 views
2

Как получить этот идентификатор с помощью jQuery?Получение идентификатора пользователя с помощью jQuery

<span data-itemkey="40e1eec6-f949-468e-8a25-ba97d0ec3fb2" class="word"> 
    <div class="additionalStyling green" id="2">Approval Process</div> 
</span> 

Я попытался это, которая возвращает undefined

$(document).on("click", ".word", function (e) { 
    var id = $(".word:first-child").attr("id"); 
} 
+0

'.word: первый-child' выбирает элемент с классом' слово', если он является первым ребенком его родителя. – CBroe

+0

попробуйте этот $ (document) .on ("click", ".word", function (e) { var id = $ (this) .find ("div: first"). Attr ("id"); } –

ответ

3

Изменить это:

var id = $(".word:first-child").attr("id"); 

To:

var id = $(this).find("> div").first().attr("id"); 

Просто чтобы убедиться, что я не копируя тот же один:

var id = $(this).children().first().attr('id'); 
+0

Если есть только один дочерний 'div', тогда не нужно' first() '. Только' find() 'будет достаточно. :) –

+1

@Sougata Если это вышеприведенный случай. Я просто родовой. ':)' –

2

Как будет несколько элементов с классом .word, $('.word') возвращает набор элементов.

Использование

$(this) // The element that is clicked 
    .children() // Get all direct descendants 
    .first() // Get first element from it 
    .attr('id'); // Get the `id` attribute value 
0

children принимает селектор, так что вы можете сделать выше короче, таким образом:

$(document).on("click", ".word", function (e) { 
    var id = $(this).children(':first').attr('id'); 
} 
0

Try:

$(document).on("click", ".word", function (e) { 
    var id = $(this).find('[id]').attr('id'); 
}); 
Смежные вопросы