2016-10-17 10 views
0

У меня есть этот HTML:Получить все идентификаторы из списка

<ul id="sortable" > 
    <li class="myclass" id="1">One item</li> 
    <li class="myclass" id="3">Another item</li> 
</ul> 

изменения Этот список не является статичным. Таким образом, идентификаторы могут измениться. Как я могу получить все идентификаторы (значения) из этого списка?

+1

Вы можете использовать [ 'карты()'] (http://api.jquery.com/map), чтобы создать массив значений идентификаторов - однако изменения 'id' атрибутов динамически - плохая идея. Они предназначены для статичности. Если вы хотите что-то изменить, чтобы идентифицировать элементы, используйте классы –

ответ

3

Вы можете использовать map() и возвращать массив идентификаторов

var ids = $('#sortable li').map(function() { 
 
    return $(this).attr('id'); 
 
}).get(); 
 

 
console.log(ids)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="sortable"> 
 
    <li class="myclass" id="1">One item</li> 
 
    <li class="myclass" id="3">Another item</li> 
 
</ul>

-1

var IDs = []; 
 
$("#sortable").find("li").each(function(){ IDs.push(this.id); }); 
 

 
console.log(IDs);
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
</head> 
 
<body> 
 
<ul id="sortable" > 
 
    <li class="myclass" id="1">One item</li> 
 
    <li class="myclass" id="3">Another item</li> 
 
</ul> 
 
</body> 
 
</html>

1
$(".myclass").each(function(){ 
    var id = $(this).attr('id'); 
    // this will return id 
}); 
0

Вы можете перебрать все li и получить их идентификатор в массив.

var arrayOfIds = []; 
 

 
$('#sortable li').each(function(){ 
 
    arrayOfIds.push($(this).attr('id')); 
 
}); 
 

 
console.log(arrayOfIds);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="sortable" > 
 
    <li class="myclass" id="1">One item</li> 
 
    <li class="myclass" id="3">Another item</li> 
 
    <li class="myclass" id="4">Yet Another item</li> 
 
    <li class="myclass" id="5">And Another item</li> 
 
</ul>

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