2013-07-16 2 views
0

У меня есть следующий Ли:получить индекс списка по идентификатору и по имени

<ul id = "myul"> 
    <li id = "1"> a </li> 
    <li id = "2"> b </li> 
    <li id = "3"> c </li> 
</ul> 

Я пытаюсь сделать две вещи:

  1. Я хочу, чтобы получить индекс литиево по идентификатор (например: 1)
  2. Я хочу, чтобы получить индекс литиево по значению (например: б)

для этого примера, я должен получить:

1) 0 
2) 1 

Я попробовал следующую вещь:

// get index by id: 
alert('index: ' + $("#myul li").index(document.getElementById("2"))); 

// get index by name 
alert('index: ' +); 

ответ

2
// get index by id: 
alert('index: ' + $("#2").index()); 

// get index by name, works if text does not appear on multiple li 
alert('index: ' + $('li:contains(b)').index()); 
+0

так для моего примера? alert ('index:' + $ ('# myul li: contains (b)'). Index()); –

+0

, если «b» не присутствует ни на одном другом «ли», то кода, который я представил, будет достаточно. Добавление селектора '# myul' ограничит поиск только этим списком. –

3

Просто с помощью функции индекса() в JQuery, так как идентификатор элемента должен быть уникальным, так что вы можете использовать id selector непосредственно.

Live Demo

$('#2').index() 
1

по значению:

$("#myul li:contains('b')").index()